Docker – 删除所有图片和容器后释放空间

我删除了所有的图像/容器

ubuntu@ubuntu:/var/lib/docker$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu@ubuntu:/var/lib/docker$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 

但是我注意到在/var/lib/docker里仍然有大约15GB的空间

 ubuntu@ubuntu:/var/lib/docker$ sudo du --max-depth=1 -h . 12G ./volumes 104K ./aufs 4,0K ./containers 1,3M ./image 4,0K ./trust 4,0K ./swarm 2,6G ./tmp 108K ./network 15G . 

问题:

  1. 我怎样才能释放这个空间?

  2. 删除/var/lib/docker中的东西是否安全?

尝试(从docker1.13):

 docker system df 

它显示你的大小:

  • 图片
  • 集装箱
  • 本地卷

并使用以下命令删除本地卷

 docker volume prune 

对于较旧的Dockers,请尝试:

 docker volume rm $(docker volume ls -q) 

对于我当前的docker版本(Client和Server都是1.12.1),删除所有卷的方法是使用:

 docker volume rm $(docker volume ls -q) 

但以下更安全:(感谢马特的评论)

 $(docker volume ls -qf dangling=true) 

也从版本: 1.13.0(2017-01-18)添加了一些命令:

 $ docker system prune $ docker container prune $ docker image prune $ docker volume prune $ docker network prune 

更新日志:添加新的docker system命令与dfprune子系统资源pipe理,以及docker {container,image,volume,network} prune子命令#26108#27525 /#27525

大部分空间被docker volume所占用,正如你从输出中看到的那样:

12G ./volumes

Docker卷用于为Docker容器持久化数据,并在容器之间共享数据,而且它们独立于容器的生命周期。 因此,删除映像/容器不会释放他们占用的磁盘空间。 请参阅他们的官方文档了解更多详情。

如果你使用的是最新版本的docker,你可以find与卷有关的命令文档以获得更多的细节(比如列表/删除/创build卷),对于较老版本的docker,你可以参考github上的脚本来了解如何清理卷。

希望这可能会有所帮助:-)