【小记】Docker 无法进入容器问题

type
Post
status
Published
summary
docker 无法进入容器问题解决小记
slug
docker-fix-1
date
Apr 17, 2025
tags
Docker
category
实践技巧
password
icon
URL
Property
Apr 18, 2025 02:56 PM

报错处理流程

1、尝试进入容器:docker exec -it container_id bash
提示:unable to find user root: no matching entries in passwd file
 
2、尝试指定用户进入容器:docker exec -u 0 -it container_id bash
提示:OCI runtime exec failed: unable to start container process bash ,exec: "bash": stat bash: no such file or directory: unknown
 
3、尝试切换终端进入容器:docker exec -u 0 -it container_id sh
提示:OCI runtime exec failed: unable to start container process bash ,exec: "sh": stat sh: no such file or directory: unknown
 
4、尝试重启容器:docker restart container_id 问题依然存在。
 
会不会是宿主机的 passed 文件被删除了?
  • 默认情况下,容器的 /etc/passwd 是独立的,如果未挂载 /etc/passwd,容器的用户系统是隔离的,宿主机文件删除不会直接影响容器。
 
5、在启动容器的命令后面直接执行 Linux 命令,全部提示找不到环境变量路径
 
6、尝试从镜像文件重新创建容器;失败,同样的报错。
 
7、尝试删除镜像,从镜像压缩包重新加载镜像,重新创建容器;失败,同样的报错。
 
8、尝试从进入其他镜像创建的容器;失败,同样的报错。
 
9、怀疑是 Docker 服务的问题,于是重启Docker: sudo systemctl restart docker 失败,同样的报错。
 
10、之前还能正常使用,于是咨询相关人员,得知中途有镜像删除操作,怀疑是基础镜像层被破坏,于是重置 docker。
  • sudo systemctl stop docker
  • sudo rm -rf /var/lib/docker
    • 如果可能删除(有些客户机器上禁止删除操作),则 mv 重命名该文件夹,然后执行下一步
  • sudo systemctl start docker
 
11、从压缩包加载镜像、从镜像创建容器、进入容器,完美解决。
 
对于本文内容有任何疑问, 可与我联系.