Docker - 删除所有图像后释放空间&集装箱

时间:2017-03-28 10:17:57

标签: docker diskspace

我删除了所有图片/容器

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内的内容是否安全?

3 个答案:

答案 0 :(得分:3)

尝试(来自docker 1.13):

docker system df

它显示你的大小:

  • 图片
  • 容器
  • Local Volumes

并使用以下方法删除本地卷:

docker volume prune

对于年龄较大的Dockers,请尝试:

docker volume rm $(docker volume ls -q)

答案 1 :(得分:2)

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

ResponseEntity<BalanceCheckResponse> responseEntity = rstTemp.postForEntity(url, entity, BalanceCheckResponse.class);
objResponse = responseEntity.getBody();
HttpStatus status = responseEntity.getStatusCode();

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

docker volume rm $(docker volume ls -q)

同样来自版本:1.13.0 (2017-01-18) 添加了一些命令:

$(docker volume ls -qf dangling=true)
  

更改日志:使用$ docker system prune $ docker container prune $ docker image prune $ docker volume prune $ docker network prune docker system子命令添加新的df命令以进行系统资源管理,以及prune子命令#26108#27525 /#27525

答案 2 :(得分:0)

您可以从输出中看到,大部分空间都被docker volume占用:

  

12G ./volumes

Docker卷用于保存docker容器的数据并在容器之间共享数据,它们独立于容器的生命周期。因此删除图像/容器不会释放它们占用的磁盘空间。有关详细信息,请参阅their official docs

如果您使用的是最新版本的docker,可以找到volume related commands docs以获取更多详细信息(例如列表/删除/创建卷),对于旧版本的docker,您可以参考this script on github如何清理卷。

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