如何释放docker使用的浪费空间?

我在我的服务器上设置了docker。 我使用jenkinsCI。 那些工具真的很酷。 但不幸的是,我仍然无法弄清楚如何把浪费的空间带回来。

我尝试了在网上提出的不同的东西,通过使用它们,我只能释放一部分浪费的空间。 我不需要任何历史等

我尝试了不同的东西,比如粗鲁的docker rm $(docker ps -aq)docker rmi $(docker images -q)而一些容器正在运行,使得它们不能被删除。

我也试过这个脚本和类似的。

 #!/bin/bash # remove exited containers: docker ps --filter status=dead --filter status=exited -aq | xargs -r docker rm -v # remove unused images: docker images --no-trunc | grep '<none>' | awk '{ print $3 }' | xargs -r docker rmi # remove unused volumes: find '/var/lib/docker/volumes/' -mindepth 1 -maxdepth 1 -type d | grep -vFf <( docker ps -aq | xargs docker inspect | jq -r '.[] | .Mounts | .[] | .Name | select(.)' ) | xargs -r rm -fr 

我希望通过应用上面的清理命令,在所有图像的第一次构build之后,我已经固定了这些东西的大小。 换句话说,我希望随后的构build与清理应用不会使浪费的空间增长。

但无论如何,dockerbuild造的每一个执行都占据了我无法释放的新空间。

目录/ var / lib / docker / overlay会长大,最终不会考虑我的清理工作。

我错在哪里?

在最新版本的Docker中,您现在可以使用docker system prune命令(使用--all选项进行完整清理)。

https://docs.docker.com/engine/reference/commandline/system_prune/

为了删除卷使用:

 docker volume prune 

为了删除networking使用:

 docker network prune 

为了移除所有停止的容器,使用:

 docker container prune 

为了删除不使用的图像使用:

 docker image prune