如何清理 Docker?

9

我们正在使用Docker进行持续构建。我已经删除了不需要的镜像和容器,只剩下4个最大为5GB的镜像。但是似乎还有其他东西占用了所有磁盘空间。有没有什么技巧可以清理和释放空间呢?

    Filesystem      Size  Used Avail Use% Mounted on
udev             48G     0   48G   0% /dev
tmpfs           9.5G   26M  9.5G   1% /run
/dev/sda1       456G  428G  5.2G  99% /
tmpfs            48G  7.4M   48G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            48G     0   48G   0% /sys/fs/cgroup
tmpfs           100K     0  100K   0% /run/lxcfs/controllers
tmpfs           9.5G     0  9.5G   0% /run/user/1000
none            456G  428G  5.2G  99% /var/lib/docker/aufs/mnt/4b96935f7fb6b517031df23849292a06eab92013d0610d922588688132013a5e
shm              64M     0   64M   0% /var/lib/docker/containers/c3b48e0215e05e13f79466de64cb0a2b4646cef30e020e651c59cb1950f0d70d/shm
none            456G  428G  5.2G  99% /var/lib/docker/aufs/mnt/4388442c65c13654a7d1cd51894aa5c06137166628a0a52d6854abc230417140
shm              64M     0   64M   0% /var/lib/docker/containers/027ce91cd66eca1ed134decdb8c13e6676fd34b1f6affe406513220037e63936/shm
none            456G  428G  5.2G  99% /var/lib/docker/aufs/mnt/13595cb64024d0d8f3cf7c09f90e37baccee08ea9b9b624c41d971a195d614e0
shm              64M     0   64M   0% /var/lib/docker/containers/3212761e701699313a127d50a423677c1d0ddaf9099ae37e23b25b8caaa72b37/shm
none            456G  428G  5.2G  99% /var/lib/docker/aufs/mnt/149839edbef826cdf289e66988c206dd6afebdb4257cc22e91551f65ea034f77
shm              64M     0   64M   0% /var/lib/docker/containers/9c084651b9ecf035257a34b9dd4415689e4c685e660e3013ad9673955834be
3个回答

9
自Docker 1.13版本以后,有新的清理Docker环境的prune命令
使用docker system df获取容器、镜像及其磁盘用量统计信息,包括可回收空间。
使用docker system prune清除已停止的容器、悬挂卷和悬挂镜像。
要仅删除已停止的容器,您可以使用docker container prune,使用docker image prune删除所有悬挂镜像。

我运行了“docker container prune”和“docker image prune”,但仍有22GB未释放,如何清除它:无。148G 121G 22G 85%/var/lib/docker/aufs/mnt/def4f3913e9b56b064c9e17b01599943982c454a72fc3ba3d674effc619a22a1 shm 64M 0 64M 0%/var/lib/docker/containers/7b690ecd69c8f0f3113306ecbdc54f330508f03806c35b65311b866ebf5d29b7/mounts/shm - Ashish Karpe

7
常见错误是忘记删除卷。
对于CI和CD,当删除容器时使用docker rm -v是一个好习惯,使用-v可以确保自动创建的卷被删除。
要确定,请键入docker volume ls,如果此处有一些值,则表示某些容器创建了一些卷。
您可以使用docker volume rm $(docker volume ls -q)一次性摆脱它们(它不会删除任何当前使用的卷,并显示错误消息,但请小心使用)。

1
我运行了: docker volume rm $(docker volume ls -q),但是还有22GB没有被释放,该如何清除呢?:none 148G 121G 22G 85% /var/lib/docker/aufs/mnt/def4f3913e9b56b064c9e17b01599943982c454a72fc3ba3d674effc619a22a1 shm 64M 0 64M 0% /var/lib/docker/containers/7b690ecd69c8f0f3113306ecbdc54f330508f03806c35b65311b866ebf5d29b7/mounts/shm - Ashish Karpe

4
您可以使用以下命令清理Docker工件(根据您需要清理的内容):
docker container prune
docker image prune
docker network prune
docker volume prune

这些命令支持'-a'选项,如果指定了该选项,将删除所有工件(例如docker container prune -a将删除所有容器)。
如果您需要清理所有内容,您可能希望使用:
docker system prune -a

这就像上面提到的所有命令的合集。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接