
yelp/docker-custodianDocker 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+[***]
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天的容器。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务