为什么删除docker容器和图像不会释放Windows上的存储空间?如何修复它?

为什么删除docker容器和图像不会释放Windows上的存储空间?如何修复它?,windows,docker,virtualbox,Windows,Docker,Virtualbox,问题: size (MB) 1. with 2 images 1,376 2. downloading a new image X ? 3. running X as Y 2,963 4. removing Y 2,963 5. removing X 3,106 6. removing all the im

问题:

                            size (MB)
1. with 2 images                1,376
2. downloading a new image X    ?
3. running X as Y               2,963
4. removing Y                   2,963
5. removing X                   3,106
6. removing all the images      3,126
当我下载和运行容器时,它们会占用越来越多的空间。我找到了清理未使用的容器和图像的建议,我照做了。你猜怎么着?它们会占用更多的磁盘空间

我目前的发现:

                            size (MB)
1. with 2 images                1,376
2. downloading a new image X    ?
3. running X as Y               2,963
4. removing Y                   2,963
5. removing X                   3,106
6. removing all the images      3,126
它与
.docker\machine\machines\default\disk.vmdk
文件有关。它只会变得更大

磁盘日志。vmdk:

                            size (MB)
1. with 2 images                1,376
2. downloading a new image X    ?
3. running X as Y               2,963
4. removing Y                   2,963
5. removing X                   3,106
6. removing all the images      3,126
到目前为止,我找到的唯一修复程序是运行删除VM的
docker machine rm default
。问题是我不得不再次下载所有的图片。应该有更好的解决办法。谁能解释一下:

  • 发生了什么事?
  • 如何修复它?

  • 可能您正在使用的图像使用卷。如果他们这样做了,那么删除容器就不会起作用。您还必须删除卷。 为此,删除容器时必须指定
    -v
    标志

    docker rm -v <container name or container id>
    
    docker rm-v
    
    根据您的docker版本,您将有更多可用的命令。
    查看此以了解更多信息。您可以在这篇文章中阅读有关孤立卷的更多信息

    您可以在Docker的最新版本上运行维护命令。它们将释放停止的容器、悬挂的图像和悬挂的卷所使用的空间:

    docker container prune -f
    docker image prune -f
    docker volume prune -f
    

    使用以下命令删除所有不需要的容器和图像后:

    • 码头集装箱室
    • Docker映像rm
    • Docker容器修剪
    • Docker图像修剪
    • Docker卷修剪

    我看不到任何磁盘空间被释放。重新启动Docker桌面后,我发现磁盘空间被释放。

    是的,没错,虚拟磁盘只会变得更大;虚拟驱动程序不知道操作系统文件系统正在使用虚拟磁盘的哪些部分,哪些部分没有。都是些小东西。你用的是什么docker版本?
    docker版本1.11.0,build 4dc5990
    Try
    docker volume ls
    我在按照你在答案中提供的链接之前试过了。这里没有卷。顺便说一句,我正在使用
    ubuntu
    image进行测试。还有一个组合:docker system PruneGod to know。我删除了一个巨大的图像,但我只有在重新启动Docker后才能收回磁盘空间。这对我来说很有效。在linux上重新启动docker的命令:
    sudo systemctl daemon reload
    sudo systemctl restart docker