
clockworksoul/docker-gc-crondocker-gc-cron容器会定期运行Spotify的docker-gc脚本,自动清理未使用的容器和镜像。特别适用于需要构建或拉取大量Docker镜像和容器的系统,如CI节点。默认每天午夜运行,可通过标准cron语法精确指定执行时间和其他行为。仓库的compose目录中提供了docker-compose.yml文件,简化部署过程。
bash$ wget [***] $ wget [***] $ docker-compose up -d
这将拉取并运行与本地Docker守护进程关联的docker-gc-cron镜像。默认情况下,垃圾回收进程每晚午夜执行,但可通过修改CRON属性轻松更改(见下文)。使用此docker-compose.yml文件时,docker-gc-exclude文件是必需的。
该容器支持docker-gc的所有设置,以及用于修改清理频率的额外设置。以下大部分文档借鉴并修改自docker-gc README。
所有环境变量均可通过获取并修改docker-compose.yml文件来使用。
默认情况下,docker-gc-cron进程每天午夜(cron表达式"0 0 * * *")运行。可通过CRON设置覆盖此计划:
bashdocker run -d -v /var/run/docker.sock:/var/run/docker.sock -e CRON="0 */6 * * *" clockworksoul/docker-gc-cron
默认情况下,若镜像在多个仓库中标记,Docker不会删除该镜像。在CI环境等需要构建、重新标记和推送镜像的场景下,可启用强制标志覆盖此默认行为:
bashdocker run -d -v /var/run/docker.sock:/var/run/docker.sock -e FORCE_IMAGE_REMOVAL=1 clockworksoul/docker-gc-cron
可设置保留每个仓库的最近镜像数量。例如,开发中持续重建镜像时,可保留最新版本。通过MINIMUM_IMAGES_TO_SAVE环境变量设置,如保留最近3个镜像:
bashdocker run -d -v /var/run/docker.sock:/var/run/docker.sock -e MINIMUM_IMAGES_TO_SAVE=3 clockworksoul/docker-gc-cron
默认情况下,清理容器时遇到错误,Docker会报告错误并保留容器,可能导致容器堆积。设置以下环境变量可强制删除容器:
bashdocker run -d -v /var/run/docker.sock:/var/run/docker.sock -e FORCE_CONTAINER_REMOVAL=1 clockworksoul/docker-gc-cron
默认情况下,docker-gc不会删除退出时间少于3600秒(1小时)的容器,以及创建时间少于3600秒的镜像。如需调整(如保留几天用于调试),通过GRACE_PERIOD_SECONDS变量修改:
bashdocker run -d -v /var/run/docker.sock:/var/run/docker.sock -e GRACE_PERIOD_SECONDS=86400 clockworksoul/docker-gc-cron
已删除容器留下的孤立卷会逐渐占用磁盘空间。默认不清理孤立卷,设置CLEAN_UP_VOLUMES=1可在docker-gc执行后自动清理悬空卷(通过docker volume rm $(docker volume ls -qf dangling=true)实现):
bashdocker run -d -v /var/run/docker.sock:/var/run/docker.sock -e CLEAN_UP_VOLUMES=1 clockworksoul/docker-gc-cron
默认情况下,docker-gc会执行删除操作。设置DRY_RUN=1可测试命令选项,不实际删除容器和镜像:
bashdocker run -d -v /var/run/docker.sock:/var/run/docker.sock -e DRY_RUN=1 clockworksoul/docker-gc-cron
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务