如何清理 docker?
How to cleanup docker?
我们正在使用 docker 进行持续构建。我已经删除了不需要的图像和容器。最多只有 4 张 5GB 的图像。但看起来其他东西正在吃掉所有磁盘 space。关于如何清理和改进的任何提示 space?
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
常见的错误是忘记删除卷。
对于 CI 和 CD,删除容器时使用 docker rm -v
是一个好习惯,使用 -v 可以确保删除自动创建的卷。
当然,如果您在此处有一些值,请键入 docker volume ls
,这意味着您的某些容器创建了一些卷。
您可以使用 docker volume rm $(docker volume ls -q)
一次全部删除它们(它不会删除任何当前使用的卷,而是显示一条错误消息,但请谨慎使用)
在 Docker 1.13 版本之后,有 new prune commands 清理 docker 环境。
使用 docker system df
通过可回收 space 获取有关容器、图像及其磁盘使用情况的统计信息。
使用 docker system prune
摆脱停止的容器、悬空卷和悬空图像。
要仅删除已停止的容器,您可以使用 docker container prune
和 docker image prune
删除所有悬挂图像。
您可以使用以下命令清理 docker 个工件(取决于您需要清理的内容):
docker container prune
docker image prune
docker network prune
docker volume prune
这些命令支持“-a”选项,如果指定,该选项将删除所有工件(例如,docker container prune -a
将删除所有容器)
如果您需要清理您可能想要使用的所有内容:
docker system prune -a
这就像上面提到的所有命令的组合。
我们正在使用 docker 进行持续构建。我已经删除了不需要的图像和容器。最多只有 4 张 5GB 的图像。但看起来其他东西正在吃掉所有磁盘 space。关于如何清理和改进的任何提示 space?
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
常见的错误是忘记删除卷。
对于 CI 和 CD,删除容器时使用 docker rm -v
是一个好习惯,使用 -v 可以确保删除自动创建的卷。
当然,如果您在此处有一些值,请键入 docker volume ls
,这意味着您的某些容器创建了一些卷。
您可以使用 docker volume rm $(docker volume ls -q)
一次全部删除它们(它不会删除任何当前使用的卷,而是显示一条错误消息,但请谨慎使用)
在 Docker 1.13 版本之后,有 new prune commands 清理 docker 环境。
使用 docker system df
通过可回收 space 获取有关容器、图像及其磁盘使用情况的统计信息。
使用 docker system prune
摆脱停止的容器、悬空卷和悬空图像。
要仅删除已停止的容器,您可以使用 docker container prune
和 docker image prune
删除所有悬挂图像。
您可以使用以下命令清理 docker 个工件(取决于您需要清理的内容):
docker container prune
docker image prune
docker network prune
docker volume prune
这些命令支持“-a”选项,如果指定,该选项将删除所有工件(例如,docker container prune -a
将删除所有容器)
如果您需要清理您可能想要使用的所有内容:
docker system prune -a
这就像上面提到的所有命令的组合。