Docker - 删除所有图像和容器后释放 space

Docker - free up space after removing all images & containers

我已经删除了所有images/containers

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

但我注意到里面还有大约15GB /var/lib/docker

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. 如何释放这个 space?

  2. 取出里面的东西安全吗/var/lib/docker

尝试(来自 docker 1.13):

docker system df

它显示您的尺码:

  • 图片
  • 容器
  • 本地卷

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

docker volume prune

老码头工人试试:

docker volume rm $(docker volume ls -q)

对于我当前的 docker 版本(客户端和服务器均为 1.12.1),删除所有卷的方法是使用:

docker volume rm $(docker volume ls -q)

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

$(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

Changelog: Add new docker system command with df and prune subcommands for system resource management, as well as docker {container,image,volume,network} prune subcommands #26108 #27525 / #27525

大多数 space 被 docker volume 占用,正如您从输出中看到的那样:

12G ./volumes

Docker卷用于为docker容器持久化数据并在容器之间共享数据,它们独立于容器的生命周期。因此删除 image/container 不会释放它们占用的磁盘 space。详情请参考their official docs

如果您使用的是最新版本的 docker,您可以找到 volume related commands docs for more details(list/remove/create volumes e.g), for older version of docker, you can refer to this script on github 了解如何清理卷。

希望这会有所帮助:-)