如何强制Docker手动删除卷和容器中的文件后释放存储空间?

我有几个存储空间的问题。 我删除了几个大文件,如日志文件(find大文件的Unix后)。

问题是手动删除Docker的一些文件(在/ var / lib / docker / …中)。 删除Docker文件后,我可以看到剩下的空间不会改变。 Docker不释放空间。

我重新启动服务的Docker和我的问题persit。

我如何强制Docker释放(devicemapper,volume,images,…)的空间?

Docker清理工作是不存在的,你基本上负责自己做。 有一些方法可以在这个博客文章中指出,但我宁愿使用第三方脚本,例如: docker-clean来清理docker留下的一些混乱。

这取决于你使用的是什么版本的docker,如果你使用的是1.13,那么你可以使用:

docker system df 

 docker system df -v 

这些将显示正在使用的磁盘空间。

您可以使用prune命令进行prune

 docker system prune -af 

^^这修剪一切,是最具破坏性的。 或者你可以使用docker image prunedocker volume prune

使用最新版本的Docker,您可以看到以下空间:

docker system df

并修剪:

docker system prune

上述命令结合了卷,容器,networking和映像的修剪命令:

docker volume prune

docker container prune

docker image prune

docker network prune

所有这些都有一个 – 帮助--help option

-O-

在老版本的Docker上,我运行了脚本:

 #!/bin/bash # Remove dead containers (and their volumes) docker ps -f status=dead --format '{{ .ID }}' | xargs -r docker rm -v # Remove dangling volumes docker volume ls -qf dangling=true | xargs -r docker volume rm # Remove untagged ("<none>") images docker images --digests --format '{{.Repository}}:{{.Tag}}@{{.Digest}}' | sed -rne 's/([^>]):<none>@/\1@/p' | xargs -r docker rmi # Remove dangling images docker images -qf dangling=true | xargs -r docker rmi # Remove temporary files rm -f /var/lib/docker/tmp/*