删除/var/lib/docker下文件导致docker拉取镜像报错

failed to register layer: lstat /var/lib/docker/overlay2/cbff28c6…

或者
Failed to pull image “jmgao1983/flannel:v0.11.0-amd64”: rpc error: code = Unknown desc = failed to register layer: error creating overlay mount to /var/lib/docker/overlay2/1c0b7cbff…28c63ce/merged

网上一搜一大推 rm /var/lib/docker 然后重启docker ,顶多再加个更换存储方式为overlay,这种方式等于删除了docker 镜像和容器的文件信息,最直观的感受就是你所有本地镜像和容器都将不复存在,相当于做了一次docker初始化

本次问题出现原因:/var/lib/docker/overlay2/ 下的文件被错误删除导致镜像在拉取时和之前拉取到本地的镜像底层镜像冲突

解决办法:
docker system prune -a

如果你觉得这样太过武断(其实不然,这样是解决的最直接的方式QAQ),可以使用docker image prune 删除本地镜像, 那么如果你能找到之前根据此镜像创建的容器(包括已经Exited)状态的文件,删除与之相关联的部分也可创建

查看容器挂载点

docker inspect --format='{{.GraphDriver.Data}}'  (你所要查看的容器id) | grep MergedDir

docker info 命令记录:
确认当前容器所用驱动

docker info --format '{{.Driver}}'

查看docker 根路径

docker info --format '{{.DockerRootDir}}'

关于/var/lib/docker/overlay2 的详解参:
https://blog.csdn.net/tanzhe2017/article/details/81010495
https://blog.csdn.net/u013256816/article/details/109554725

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值