
Docker Custodian是一款用于保持Docker主机整洁的工具,主要通过两个核心命令实现资源清理:dcgc(删除旧容器和未使用镜像)和dcstop(停止运行时间过长的容器)。它能够自动识别并清理不再需要的Docker资源,避免存储空间浪费和资源占用。
dcgc命令删除旧的停止容器和未使用镜像dcstop命令停止运行时间超过指定阈值的容器pytimeparse库兼容的多种时间格式(如3days、2weeks等)bashdocker pull yelp/docker-custodian docker run -ti \ -v /var/run/docker.sock:/var/run/docker.sock \ yelp/docker-custodian dcgc --help
首先构建包(需安装dh-virtualenv依赖):
bashdpkg-buildpackage -us -uc
然后安装生成的包:
bashdpkg -i ../docker-custodian_*.deb
bashpip install git+https://github.com/Yelp/docker-custodian.git#egg=docker_custodian
dcgc命令用于删除停止的容器和未使用的镜像,仅清理存在时间超过指定"最大年龄"的资源。运行中的容器和被容器使用的镜像不会被删除。
基本用法
最大年龄可使用pytimeparse支持的任意时间格式(如3days、12h、30m等)。
示例:
bashdcgc --max-container-age 3days --max-image-age 30days
排除镜像配置
可通过以下参数指定永久保留的镜像:
--exclude-image:指定不删除的镜像标签,可多次使用--exclude-image-file:指定包含排除镜像列表的文件路径,每行一个镜像标签支持基本模式匹配,例如:
user/repositoryA:* # 排除repositoryA的所有标签 user/repositoryB:?.? # 排除repositoryB的x.x格式标签 user/repositoryC-*:tag # 排除以repositoryC-开头的镜像的tag标签
排除容器及关联镜像配置
可通过标签排除特定停止容器(及其使用的镜像):
--exclude-container-label:指定不删除的容器标签(格式为key=value,可省略value仅检查key),可多次使用支持基本模式匹配,例如:
foo* # 排除标签键以foo开头的容器 com.docker.compose.project=test* # 排除项目名为test开头的compose容器 com.docker*=*bar* # 排除标签值包含bar的docker相关容器
dcstop命令用于停止运行时间超过指定时长的容器,仅针对名称以--prefix参数指定前缀开头的容器。
基本用法
示例:
bashdcstop --max-run-time 2days --prefix "projectprefix_"
此命令将停止所有名称以"projectprefix_"开头且运行时间超过2天的容器。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务