在 Linux 系统中,有几种方法可以进入正在运行的 Docker 容器。以下是常用的几种方式:
docker exec
命令(推荐方式)docker exec -it <容器ID或名称> /bin/bash
或者使用其他 shell(如 sh):
docker exec -it <容器ID或名称> /bin/sh
参数说明:
- -i
:保持 STDIN 打开
- -t
:分配一个伪终端
- /bin/bash
或 /bin/sh
:指定要运行的 shell
docker attach
命令docker attach <容器ID或名称>
注意:这种方式会连接到容器的主进程,如果主进程退出,容器也会停止。
nsenter
命令(更底层的方式)PID=$(docker inspect --format {{.State.Pid}} <容器ID或名称>)
nsenter --target $PID --mount --uts --ipc --net --pid
如果容器内运行了 SSH 服务,也可以通过 SSH 连接:
ssh root@<容器IP> -p <SSH端口>
查看运行中的容器:
docker ps
退出容器而不停止容器:
docker exec
:使用 exit
或 Ctrl+D
docker attach
:使用 Ctrl+P
然后 Ctrl+Q
分离而不停止容器如果容器没有 bash/sh:
docker exec -it <容器ID> /bin/ash # 对于 Alpine Linux
创建新容器并立即进入:
docker run -it <镜像名称> /bin/bash
选择哪种方式取决于你的具体需求,docker exec
是最常用且推荐的方法。