【问题标题】:How to cleanup docker?如何清理码头工人?
【发布时间】:2016-10-13 13:10:54
【问题描述】:

我们使用 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

【问题讨论】:

    标签: unix docker containers ubuntu-16.04


    【解决方案1】:

    Docker 1.13版本以后,有new prune commands来清理docker环境。

    使用docker system df 获取有关容器、映像及其磁盘使用情况以及可回收空间的统计信息。

    使用docker system prune 摆脱停止的容器、悬空的卷和悬空的图像。

    要仅删除已停止的容器,您可以使用 docker container prunedocker image prune 删除所有悬空图像。

    【讨论】:

    • 我运行了“docker container prune”和“docker image prune”,仍然没有释放 22gb 如何清除它:无 148G 121G 22G 85% /var/lib/docker/aufs/mnt/def4f3913e9b56b064c9e17b01599943982c454a72fc3ba3d6 0 64M 0% /var/lib/docker/containers/7b690ecd69c8f0f3113306ecbdc54f330508f03806c35b65311b866ebf5d29b7/mounts/shm
    【解决方案2】:

    常见的错误是忘记删除卷。

    对于 CI 和 CD,最好在删除容器时使用 docker rm -v,使用 -v 可以确保自动创建的卷已被删除。

    如果您在此处有一些值表示您的某些容器创建了一些卷,请输入 docker volume ls 以确保确定。

    您可以使用docker volume rm $(docker volume ls -q) 一次性删除它们(它不会删除任何当前使用的卷,而是会显示错误消息,但请谨慎使用)

    【讨论】:

    • 我跑了:docker volume rm $(docker volume ls -q) 仍然 22gb 不免费如何清除它:无 148G 121G 22G 85% /var/lib/docker/aufs/mnt/def4f3913e9b56b064c9e17b01599943982c454a72fc3ba316d 64M 0 64M 0% /var/lib/docker/containers/7b690ecd69c8f0f3113306ecbdc54f330508f03806c35b65311b866ebf5d29b7/mounts/shm
    【解决方案3】:

    您可以使用以下命令清理 docker 工件(取决于您需要清理的内容):

    docker container prune
    docker image prune
    docker network prune
    docker volume prune
    

    这些命令支持 '-a' 选项,如果指定将删除所有工件(例如 docker container prune -a 将删除所有容器)

    如果您需要清理您可能想要使用的所有内容:

    docker system prune -a
    

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

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 2017-02-01
      • 2016-01-18
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多