我正在使用Docker for Mac和节省磁盘空间我想摆脱一些未使用的本地图像。据我所知,本地文件存储在〜/ Library / Containers / com.docker.docker中。
但即使我从docker中删除所有图像和容器,该文件夹仍保持大小为GB,并且不释放单个字节。唯一的选择是完全删除com.docker.docker文件夹,但这只有在你想要删除所有数据而不仅仅是未使用的图像时才有意义。我究竟做错了什么?
这里发生的是你的mac应用程序的docker真正运行的是虚拟机。该虚拟机有自己的磁盘,这就是qcow2文件。该磁盘被懒惰地分配,并且不会同时占用所有空间。在vm内部使用空间后,磁盘将在主机上生长。
磁盘映像将增长,直到达到磁盘大小。仅仅因为文件在vm中被删除,这不会导致主机上的磁盘映像再次收缩。
有一种可能的解决方案来缩小您的磁盘映像:https://forums.docker.com/t/where-does-docker-keep-images-containers-so-i-can-better-track-my-disk-usage/8370/7
我见过一些人使用这个技巧取得了一些成功。
要删除所有未使用的图像,请使用docker images prune
。
还有另一种方法可以删除所有未使用的图像(悬空):docker rmi $(docker images -aq --filter dangling=true)
要删除您不需要的图像,请使用docker rmi <image>
。您可以使用多个图像,例如。 docker rmi abcdef ghijkl
,其中abcdef
和ghijkl
是图像哈希。
如果这没有立即帮助,请尝试重新启动docker服务(sudo service docker restart
)。在某些情况下,图像/容器仅标记为deleted
,不会被删除。但他们重启后。
列出您的图像:
docker images
删除单个图像:
docker rmi image_id