在 macOS 上删除本地 Docker 个图像

Remove local Docker images on macOS

我将 Docker 用于 Mac 并用于保存磁盘 space 我想删除一些未使用的本地图像。据我所知,本地文件存储在 ~/Library/Containers/com.docker.docker.

但即使我从 docker 中删除所有图像和容器,该文件夹仍保持其大小为 GB,并且没有释放一个字节。唯一的选择是完全删除 com.docker.docker 文件夹,但这只有在您要删除所有数据而不仅仅是未使用的图像时才有意义。我做错了什么?

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

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

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

如果这不能立即解决问题,请尝试重新启动您的 docker 服务 (sudo service docker restart)。在某些情况下,images/containers 仅被标记为 deleted 而未被删除。但是他们是重启后的。

这里发生的事情是您的 docker for mac 应用程序实际上是 运行 一个虚拟的 machine。那个虚拟 machine 有自己的磁盘,这就是那个 qcow2 文件。该磁盘被延迟分配,不会一次性占用所有磁盘 space。一旦在 vm 中使用 space,磁盘就会在主机上增长。

磁盘映像会不断增长,直到达到磁盘的大小。仅仅因为一个文件在虚拟机中被删除,不会导致主机上的磁盘映像再次缩小。

有一个可能的解决方案可以缩小您的磁盘映像:https://forums.docker.com/t/where-does-docker-keep-images-containers-so-i-can-better-track-my-disk-usage/8370/7

我看到一些人使用这个技巧取得了一些成功。

列出您的图片:

docker images

删除单张图片:

docker rmi image_id

sudo docker system prune -af

简单的把上面给出的命令放上去。 它将自动删除所有图像。