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
然后赋权,就可以:
chmod700 -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
版权归原作者 麦神-mirson 所有, 如有侵权,请联系我们删除。