【问题标题】:clean docker volume with no reclaimable space on local volumes清理 docker 卷,本地卷上没有可回收空间
【发布时间】:2018-01-11 16:18:08
【问题描述】:

我正在运行 Jenkins 和 Docker,由于空间不足,Jenkins 会定期停止工作。

到目前为止,docker的清理命​​令:

docker system prune -a

清理了足够的空间来解决这个错误;但是,每次可用空间都变小了。我注意到的是

docker system df

产生以下输出:

TYPE                TOTAL ACTIVE SIZE     RECLAIMABLE

Images              4     4      882.9MB  79.15MB (8%)

Containers          6     6      16.45kB  0B (0%)

Local Volumes       4     4      31.95GB  0B (0%)

Build Cache                      0B       0B

如您所见,Local Volumes 占用了巨大的 32 GB,所以

  1. 这正常吗?

  2. 如何安全地减小本地卷的大小?

谢谢

【问题讨论】:

  • 您只能回收卷未使用的空间,删除您的卷分区文件并调整其大小以回收。
  • 每次?当它再次填满时会发生什么?
  • 是的,否则 docker 会从你的卷中删除随机文件,只是为了减少使用的大小,我认为没有人想要这样。您可以创建一个脚本来删除无用的文件并为您执行此操作。
  • 这似乎很危险 - 有没有办法查看卷中的文件?
  • 如果您知道可以删除的文件,这并不危险。执行docker volume ls 并获取您想要的卷,并执行docker volume inspect {id} 以查看有关它的更多信息,包括它们在您的主机上的位置。

标签: docker jenkins storage digital-ocean


【解决方案1】:

是的,这很正常,默认情况下运行 $docker system prune 时它​​不会修剪卷,您必须添加额外的选项来触发它: 利用: $ docker system prune --volumes 或者 $docker 卷修剪

【讨论】:

  • 谢谢,但是 docker system prune --volumes 和 docker volume prune 没有回收任何空间
  • 它对我有用,但是卷的可回收空间对我来说不是 0KB。
【解决方案2】:

所以这里有一个临时解决方案,不涉及删除或分区卷 - 关键是在修剪之前停止活动容器:

找到容器id:

docker ps

停止那个(或所有)容器:

docker container stop <id>

然后修剪:

docker system prune -a

然后,如果您收到“getsockopt:连接被拒绝”错误,我认为您需要重新创建 docker 注册表:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

这会清除大部分音量,直到它再次填满。如果有人能解决为什么它首先会填满,我将不胜感激

【讨论】:

    猜你喜欢
    • 2021-09-18
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多