当 Docker 无法进入容器时,可能是多种原因导致的。以下是逐步排查和解决方案:
docker ps -a
Exited
,需先启动容器:
bash
docker start <容器名/ID>
bash
docker logs <容器名/ID>
docker exec
(推荐)docker exec -it <容器名/ID> /bin/bash
OCI runtime exec failed
:
/bin/bash
,尝试 /bin/sh
:
bash
docker exec -it <容器名/ID> /bin/sh
bash
docker exec -it <容器名/ID> sh -c "apk add bash && bash"
docker attach
docker attach <容器名/ID>
Ctrl+P
+ Ctrl+Q
可退出而不终止容器。bash
docker run -it --name my_container <镜像> /bin/bash
--detach
运行:需手动附加。/bin/sh
或 /bin/bash
。bash
systemctl status docker # Linux
权限问题:
docker
组:sudo usermod -aG docker $USER
newgrp docker
sudo
:sudo docker exec -it <容器名/ID> /bin/bash
SELinux/AppArmor 限制(Linux):
sudo setenforce 0 # 临时关闭 SELinux
bash
docker system df # 检查磁盘使用
bash
docker start <容器名/ID>
bash
docker commit <容器名/ID> temp_image
docker run -it --rm temp_image /bin/bash
exec
或 attach
→ 3. 检查镜像/配置 → 4. 排查系统权限/资源。如果问题仍存在,请提供具体错误信息或容器配置(如 Dockerfile
)以进一步分析。