如何清理我的docker主机

Ric*_*ard 24 docker coreos

当我创建/调试docker镜像/容器时,docker似乎在我的系统上留下了各种各样的工件.(在某一点上有48个图像限制)但是我最后一次看到那里有20-25张图像; docker images.

所以最重要的问题是:

  • 如何正确清理?
  • 因为我手动删除图像更多开始到达.是吧?
  • 我应该为主机分配多少磁盘空间?
  • 下次重启后会运行守护进程真的重启吗?

和元问题......我没有问过哪些问题需要?

Mar*_*nor 35

以下是我定期清除docker主机的方法:

杀死跑步容器:

docker kill $(docker ps -qa)
Run Code Online (Sandbox Code Playgroud)

删除所有容器(及其关联的卷):

docker rm -v $(docker ps -qa)
Run Code Online (Sandbox Code Playgroud)

删除所有图片:

docker rmi $(docker images -q)
Run Code Online (Sandbox Code Playgroud)

更新

仅删除未运行的容器.解析"已退出"字符串的"ps"输出:

docker ps -a | awk '/Exited/ {print $1}' | xargs docker rm -v
Run Code Online (Sandbox Code Playgroud)

不完美......不要给你的容器命名为"退出":-)

更新

Docker 1.9有一个新的volume命令,可用于清除旧卷

docker volume rm $(docker volume ls -qf dangling=true)
Run Code Online (Sandbox Code Playgroud)

更新

最新的docker社区版有一个新的"系统修剪"命令

docker system prune --volumes
Run Code Online (Sandbox Code Playgroud)

这清除了未使用的网络,杀死已停止的容器,悬挂图像和任何未使用的卷.


use*_*318 23

删除"悬空"图像也很有帮助

docker rmi $(docker images -f "dangling=true" -q)

  • 很确定这是一个新功能,也是我一直在寻找的功能. (2认同)

tgo*_*gos 15

我还想通过添加到1.13.0版的一些命令为此做出贡献:

$ docker system prune
$ docker container prune
$ docker image prune
$ docker volume prune
$ docker network prune
Run Code Online (Sandbox Code Playgroud)

见changelog:1.13.0(2017-01-18)

为系统资源管理添加docker system带命令dfprune子命令的新命令,以及子docker {container,image,volume,network} prune命令#26108#27525 /#27525


jox*_*jox 5

我将docker-machine与VirtualBox一起使用,并且删除了所有容器和所有映像之后,docker VirtualBox映像仍在消耗许多GB的磁盘空间。

为了清理磁盘空间,它有助于删除并重新创建docker计算机。例如:

docker-machine rm default
docker-machine create --driver virtualbox default
Run Code Online (Sandbox Code Playgroud)