circleci/docker-gcDocker镜像缓存LRU垃圾回收代理(以下简称“镜像缓存代理”)是一款轻量级工具,通过LRU(最近最少使用)算法自动管理Docker镜像缓存,识别并回收不再需要的镜像文件,释放磁盘空间,避免因缓存膨胀导致的存储资源耗尽问题。
bashdocker run -d \ --name image-cache-agent \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -e MAX_CACHE_SIZE="20GB" \ -e CHECK_INTERVAL="3600" \ -e MIN_RESERVE_COUNT="5" \ -e EXCLUDE_IMAGES="nginx:latest,mysql:8.0" \ image-cache-lru-agent:latest
yamlversion: '3.8' services: image-cache-agent: image: image-cache-lru-agent:latest container_name: image-cache-agent restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock # 挂载Docker socket以访问Docker API environment: - MAX_CACHE_SIZE=15GB # 最大缓存占用空间 - CHECK_INTERVAL=1800 # 检查间隔(秒),默认3600秒 - MIN_RESERVE_COUNT=3 # 最小保留镜像数量,默认10 - EXCLUDE_IMAGES=redis:alpine,ubuntu:22.04 # 排除的镜像(逗号分隔) - FORCE_CLEAN_ON_START=true # 容器启动时是否立即执行一次清理 - LOG_LEVEL=info # 日志级别:debug/info/warn/error networks: - docker-network networks: docker-network: driver: bridge
| 环境变量名 | 描述 | 类型 | 默认值 | 示例值 |
|---|---|---|---|---|
MAX_CACHE_SIZE | 允许的最大缓存占用空间 | 字符串 | 10GB | "20GB"、"5000MB" |
CHECK_INTERVAL | 缓存检查周期(秒) | 整数 | 3600 | 1800(30分钟) |
MIN_RESERVE_COUNT | 清理后至少保留的镜像数量 | 整数 | 10 | 5 |
EXCLUDE_IMAGES | 不参与清理的镜像(名称:标签,逗号分隔) | 字符串 | 空 | "nginx:latest,alpine:*" |
FORCE_CLEAN_ON_START | 容器启动时是否立即执行清理 | 布尔 | false | true |
DELETE_UNUSED_DAYS | 超过指定天数未使用的镜像强制删除 | 整数 | 30 | 14(2周) |
LOG_LEVEL | 日志输出级别 | 字符串 | info | debug |
DRY_RUN | 仅模拟清理操作,不实际删除镜像 | 布尔 | false | true |
bashdocker run -d \ --name ci-image-agent \ -v /var/run/docker.sock:/var/run/docker.sock \ -e MAX_CACHE_SIZE="50GB" \ -e CHECK_INTERVAL="1800" \ -e MIN_RESERVE_COUNT="3" \ -e DELETE_UNUSED_DAYS="1" \ -e EXCLUDE_IMAGES="jenkins/jnlp-agent:latest" \ -e LOG_LEVEL="warn" \ image-cache-lru-agent:latest
说明:CI节点每日构建产生大量临时镜像,配置1天未使用即清理,保留核心构建代理镜像
bashdocker run -d \ --name edge-image-agent \ -v /var/run/docker.sock:/var/run/docker.sock \ -e MAX_CACHE_SIZE="10GB" \ -e CHECK_INTERVAL="86400" \ -e MIN_RESERVE_COUNT="8" \ -e EXCLUDE_IMAGES="edge-gateway:prod,data-collector:*" \ -e DRY_RUN="true" \ image-cache-lru-agent:latest
说明:边缘节点存储资源有限,配置每日检查,先通过DRY_RUN验证清理策略,排除生产核心镜像
权限要求:容器需挂载/var/run/docker.sock以获取Docker API访问权限,生产环境建议通过Docker用户组限制权限,避免直接使用root用户。
数据安全:首次部署建议启用DRY_RUN=true验证清理结果,确认无误后再关闭模拟模式。
排除规则:核心业务镜像务必加入EXCLUDE_IMAGES,避免因LRU误判导致服务不可用。
性能影响:清理操作可能短暂占用磁盘I/O,建议在业务低峰期配置检查间隔(如凌晨2点)。
版本兼容性:支持Docker Engine 18.09+版本,低版本可能存在API兼容性问题。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务