docker运行提示Error response from daemon: layer does not exist的解决方法

执行命令:docker run -it --rm provectuslabs/kafka-ui:v0.7.2 sh

提示:

docker: Error response from daemon: layer does not exist.

See 'docker run --help'.

查了半天没有找到解决方法,都是说什么删/var/lib/docker,或者docker prune清理数据,这些在正式的服务器上执行都好离谱。

最后通过从其他服务器下载镜像来导入到这个服务器,会提示文件已经存在,然后rm删除存在的layer,一一删除之后,就可以重新pull和run了。

另一台服务器下载:

docker save -o  kafka-ui.tar   provectuslabs/kafka-ui:v0.7.2

拷贝到当前服务器

scp -r root@192.168.1.2:/data1/applications/kafka-ui.tar . 

执行命令导入:docker load -i kafka-ui.tar

这个时候就提示有存在的layer:

49f62469da76: Loading layer [==================================================>] 5.875MB/5.875MB
rename /var/lib/docker/image/overlay2/layerdb/tmp/write-set-3757598051 /var/lib/docker/image/overlay2/layerdb/sha256/49f62469da7651bcaf2d76af7a56680c2dd9b7cf177ead3e8a675b160500b68e: file exists
删除重新导入即可:

rm -rf /var/lib/docker/image/overlay2/layerdb/sha256/49f62469da7651bcaf2d76af7a56680c2dd9b7cf177ead3e8a675b160500b68e
docker load -i kafka-ui.tar

重复删除所有已经存在的路径,然后再删除这个镜像就可以重新从服务器拉就可以了(删不删都可以)。

 

posted @ 2025-02-12 11:15  amoxuk  阅读(308)  评论(0)    收藏  举报