在 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+Ddocker attach:使用 Ctrl+P 然后 Ctrl+Q 分离而不停止容器如果容器没有 bash/sh:
docker exec -it <容器ID> /bin/ash # 对于 Alpine Linux
创建新容器并立即进入:
docker run -it <镜像名称> /bin/bash
选择哪种方式取决于你的具体需求,docker exec 是最常用且推荐的方法。