评论

收藏

[Linux] Docker启动故障问题 no such file or directory解决方法

服务系统 服务系统 发布于:2022-09-23 18:28 | 阅读数:543 | 评论:0

最近使用容器,推荐使用3A服务器搭建
1. 现象
服务重启后, 通过docker start 方式无法启动实例, 报出错误:
Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/xxx/merged: no such file or directory

docker save 导出镜像也报出
2. 网上各种尝试摸索无效果
修改 daemon.json中的storage-driver为overlay,重启无效果。
禁用selinux,临时或永久方式都无效果。
修改/etc/docker/daemon.json中的storage-driver为overlay2,无效果。
修改/lib/systemd/system/docker.service服务文件, 增加Environment=DOCKER_SELINUX=–selinux-enabled=false, 无效果。
最后是删除/var/lib下的docker文件信息, 这招会导致数据丢失, 不能有效解决问题。
3. 有效解决方法
如果是没有做任何损坏docker的操作,只是重启系统后, 不能有效启动docker实例, 可以通过以下方法进行解决:
1、解决方法一:
通过docker commit 命令,先将容器实例进行保存,生成镜像, 然后通过镜像重新run实例, 发现可以有效启动。
2、解决方法二:
出现/var/lib/docker/overlay2/xxx/merged时, 手动创建对应的目录:
mkdir -p /var/lib/docker/overlay2/xxx/merged

然后赋权,就可以:
chmod 700 -R /var/lib/docker/overlay2/xxx/merged

如果无效, 出现以下错误:
docker-runc not installed on system

解决办法, 建立软链接:
ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc