清理 docker 本地卷上没有可回收 space 的卷

clean docker volume with no reclaimable space on local volumes

我是 运行 Jenkins 和 Docker,Jenkins 会定期停止工作,因为缺少 space。

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

docker system prune -a

已清理 space 以解决此错误;然而,可用的 space 每次都变小了。我注意到的是

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

如您所见,本地卷占用了巨大的 32 GB,因此

  1. 这正常吗?

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

谢谢

是的,这是正常的,当你 运行 $docker 系统 p运行e 默认情况下它不会 p运行e 卷,你必须添加额外的选项来触发它: 采用: $ docker 系统 p运行e --volumes 要么 $docker 成交量 p运行e

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

查找容器 ID:

docker ps

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

docker container stop <id>

然后修剪:

docker system prune -a

然后,如果您收到 "getsockopt: connection refused" 错误,我相信您需要重新创建 docker 注册表:

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

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