我在服务器上设置了docker。我使用Jenkins进行CI。那些工具真的很酷。但是,不幸的是,我仍然无法弄清楚如何将浪费的空间带回来。
我在网上尝试了不同的东西,通过使用它们,我只能释放一部分浪费的空间。我不需要任何历史等等。
我尝试了不同的东西,比如粗鲁的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
我希望在首次构建所有图像后,我通过应用上面的清理命令来修复大小的东西。换句话说,我希望应用清理的后续构建不会使浪费的空间增长。
但无论如何,每个docker build的执行都占据了我无法释放的新空间。
目录/ var / lib / docker / overlay长大了,最终不考虑我的清理工作。
我哪里错了?
答案 0 :(得分:2)
在最新版本的Docker中,您现在可以使用docker system prune
命令(带--all
选项进行完全清理)。
https://docs.docker.com/engine/reference/commandline/system_prune/
答案 1 :(得分:2)
要删除卷,请使用:
docker volume prune
要删除网络,请使用:
docker network prune
要删除所有已停止的容器,请使用:
docker container prune
要删除未使用的图像,请使用:
docker image prune