docker exec
命令这是最常用的进入运行中容器的方法:
docker exec -it <容器ID或名称> /bin/bash
-i
: 保持STDIN打开-t
: 分配一个伪终端/bin/bash
可以替换为容器支持的其他shell,如 /bin/sh
docker attach
命令附加到正在运行的容器:
docker attach <容器ID或名称>
注意:使用此方法时,如果退出shell会导致容器停止(除非使用--detach-keys
参数)。
docker run
直接进入在启动容器时直接进入:
docker run -it <镜像名称> /bin/bash
虽然不推荐(因为违背了容器设计原则),但可以在容器内安装SSH服务:
PID=$(docker inspect --format {{.State.Pid}} <容器ID或名称>)
nsenter -t $PID -m -u -i -n -p
docker exec
,这是最安全、最常用的方法--privileged
参数获取更多权限/bin/sh
而非/bin/bash
docker-compose exec
如果你使用docker-compose管理容器# 进入名为"web"的容器
docker exec -it web /bin/bash
# 进入ID为3a45f6f2a1c3的容器
docker exec -it 3a45f6f2a1c3 /bin/sh
# 进入容器并以root用户身份
docker exec -it -u root <容器ID> /bin/bash
记住,进入容器通常是为了调试或维护,常规操作应该通过Dockerfile和容器编排工具来完成。