Docker两种方式进入后台运行的容器
1、在启动容器的时候,有时候我们加了参数-d,这时容器自动进入后台运行。如果我们要进入容器,该怎么办?通常使用docker attach命令和nsenter工具。
2、docker attach是Docker自带的命令。
$ docker run -idt centos $ docker ps $ docker attach 9b930d9d1e20 $ docker attach cocky_carson
该命令有时候并不方便,因为他是同步的,若有多个用户attach到一个容器,一个窗口命令阻塞,其他窗口都无法执行。
3、nsenter命令:在util-linux包2.23版本后都有自带包含。nsenter可以访问另一个进程的名字空间。
是否安装nsenter,通过nsenter --version查看。
a.安装nsenter
$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz $ tar -zxvf util-linux-2.24.tar.gz $ cd util-linux-2.24 $ ./configure --without-ncurses && make nsenter $ cp nsenter /usr/local/bin
b.通过nsenter命令进入容器
为了链接到容器,需要知道容器的PID,可以使用inspect获取,如:
docker inspect -f {{.State.Pid}} 5fbe4b029608 ##获取PID,5fbe4b029608为容器ID
docker inspect 5fbe4b029608 ##查看该容器的详细信息
获取了PID之后,就可以通过下面的命令进入容器了
nsenter --target 31353 --mount --uts --ipc --net --pid ##31353为"docker inspect -f {{.State.Pid}} 5fbe4b029608"输出的结果
分类:
Docker系列教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2014-03-20 git配置和使用
2011-03-20 Serv-U设置SSL的方法及FlashFxp启用SSL连接错误的解决办法