【小记】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、从压缩包加载镜像、从镜像创建容器、进入容器,完美解决。