使用Kubuntu 18下的docker,我没有设备上的可用空间。 我运行命令来清除空间:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker-compose down --remove-orphans
docker system prune --force --volumes
当我仍然没有可用空间时,打开/ var / lib / docker / overlay2 /目录,然后 删除了很多子目录。
那之后我得到了错误:
$ docker-compose up -d --build
Creating network "master_default" with the default driver
ERROR: stat /var/lib/docker/overlay2/36af81b800ebb595a24b6c724318c1126932d2bfae61e2c98bfc65a203b2b928: no such file or directory
谢谢!
答案 0 :(得分:2)
在我仍然没有可用空间的情况下,打开了
/var/lib/docker/overlay2/
目录,并删除了其中的许多子目录。
这时,docker文件系统已损坏。要修复,最好的办法是备份要保存的所有内容,尤其是任何卷,停止docker引擎(systemctl stop docker
),删除整个docker文件系统(rm -rf /var/lib/docker
),然后重新启动docker({ {1}}。
到那时,引擎将完全空了,没有任何图像,容器等。您将需要拉/重建图像并重新创建您正在运行的容器。希望这就像systemctl start docker
一样简单。
答案 1 :(得分:1)
/var/lib/docker/overlay2/
是docker存储图像层的地方。
现在,docker system prune -a
会删除所有未使用的图像,已停止的容器和构建缓存(如果我没记错的话)。
一个建议,由于您正在构建映像,请检查docker buildkit。我知道docker-compose增加了对此的支持,但是我不知道您的版本是否支持该功能。简而言之,构建图像会更快。