在macOS上删除本地Docker镜像

我正在使用Docker for Mac和为了节省磁盘空间,我想摆脱一些未使用的本地图像。 据我所知,本地文件存储在〜/ Library / Containers / com.docker.docker中。

但即使我从docker中删除所有的图像和容器文件夹保持它的大小一些GB,而不是一个字节被释放。 唯一的select是完全删除com.docker.docker文件夹,但是这只有在你想删除所有的数据而不仅仅是未使用的图像时才有意义。 我究竟做错了什么?

这里发生的事情是你的Docker for Mac应用程序真的在运行一个虚拟机。 该虚拟机有自己的磁盘,这是qcow2文件。 该磁盘被懒惰地分配,并不会一次占用所有的空间。 一旦在虚拟机内使用了空间,磁盘将在主机上增长。

磁盘映像将增长到达到磁盘的大小。 只是因为在虚拟机内部文件被删除,这不会导致主机上的磁盘映像再次收缩。

有一个可能的解决scheme来缩小您的磁盘映像: https : //forums.docker.com/t/where-does-docker-keep-images-containers-so-i-can-better-track-my-disk-usage /七分之八千三百七十

我见过几个人使用这个技巧,取得了一些成功。

要删除所有未使用的图像,请使用docker images prune

还有另一种方法来删除所有未使用的图像(悬挂): docker rmi $(docker images -aq --filter dangling=true)

要删除不需要的图像,请使用docker rmi <image> 。 你可以使用多个图像,例如。 docker rmi abcdef ghijkl ,其中abcdefghijkl是图像哈希。

如果这不能立即帮助,请尝试重新启动您的泊坞服务( sudo service docker restart )。 在某些情况下,图像/容器只被标记为deleted ,不会被删除。 但是他们在重启之后。