【发布时间】:2018-11-17 02:56:49
【问题描述】:
有没有办法删除几天前构建的 docker 镜像?
如果我们检查docker images,将会得到:
REPOSITORY TAG IMAGE ID CREATED SIZE
存在一个CREATED 项目。
从official document搜索,没有找到那个选项。
【问题讨论】:
有没有办法删除几天前构建的 docker 镜像?
如果我们检查docker images,将会得到:
REPOSITORY TAG IMAGE ID CREATED SIZE
存在一个CREATED 项目。
从official document搜索,没有找到那个选项。
【问题讨论】:
docker image prune 提供过滤器以在特定日期之前删除图像:
docker image prune -a --filter "until=$(date +'%Y-%m-%dT%H:%M:%S' --date='-15 days')"
【讨论】:
docker images --filter=reference='myregistry/myrepo*' | grep "7 days ago" | awk '{print $3}' | xargs docker image rm
7 days旧的图像。超过 7 天的图像仍然存在,因此此解决方案不是原始问题的答案。
您可以告诉 docker image prune 删除任何早于给定小时数的图像,在您的情况下:7 * 24h= 168h。
docker image prune -a --force --filter "until=168h"
使用 --force 选项,不会有任何提示,因此可以轻松地将其添加到 crontab 以每天运行。
为此,请在编辑模式 (crontab -e) 下打开 crontab,并添加以下行以在每天凌晨 1 点运行此命令。
0 1 * * * docker image prune -a --force --filter "until=168h"
【讨论】:
until 的逻辑否定不支持(例如,since 关键字)。 IMO 有点半途而废。
https://docs.docker.com/engine/reference/commandline/image_prune/
docker image prune -a --force --filter "until=240h"
【讨论】: