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

tgo*_*gos 6 diskspace 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
Run Code Online (Sandbox Code Playgroud)

但我注意到里面还有大约 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     .
Run Code Online (Sandbox Code Playgroud)

问题:

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

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

iti*_*iic 9

尝试(来自 docker 1.13):

docker system df
Run Code Online (Sandbox Code Playgroud)

它显示你的大小:

  • 图片
  • 容器
  • 本地卷

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

docker volume prune
Run Code Online (Sandbox Code Playgroud)

对于较旧的 Docker,请尝试:

docker volume rm $(docker volume ls -q)
Run Code Online (Sandbox Code Playgroud)

  • 更新答案并提及运行每个命令所需的最低 Docker 版本会很棒。我有 Docker 1.12.1,但它们都不起作用(“system”不存在,“volume”没有“prune”子命令)。 (2认同)

tgo*_*gos 5

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

docker volume rm $(docker volume ls -q)
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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