docker - 使用 Ansible 根据使用 docker_prune 的标签删除图像
问题描述
我想删除所有未标有 2 个或更多标签的 docker 图像。由于 Ansible 2.8 有一个docker_prune command,我想将它与 images_filter 选项结合使用,如下所示:
docker_prune:
debug: yes
containers: no
images: yes
images_filters:
label: not label1 label2
dangling: false
在docker prune 文档中有一个简单的方法:
docker image prune --filter="label!=label1!=label2"
有没有办法否定命令中的标签选项,或者是在标签列表的帮助下循环 docker_prune 的唯一方法?
解决方案
对不起,我是凭记忆写的。该命令的工作方式如下:
$ docker system prune --help
Usage: docker system prune [OPTIONS]
Remove unused data
Options:
-a, --all Remove all unused images not just dangling ones
--filter filter Provide filter values (e.g. 'label=<key>=<value>')
-f, --force Do not prompt for confirmation
--volumes Prune volumes
因此,它应该有类似的选项:
- name: prune docker
docker_prune:
volumes: true
tagged_images: true
filters:
- label!=<key>
当前支持的标签过滤器:
label (label=<key>, label=<key>=<value>, label!=<key>, or label!=<key>=<value>) - only remove containers, images, networks, and volumes with or ( without, in case label!=... is used) the specified labels.
推荐阅读
- android - 当应用程序从 BackStack 恢复或从 Notification 调用时,Fragment 变得无响应
- asp.net - C# cryptoSha256 和 HashLib Sha256 的区别
- r - 更改函数中的列名
- serial-port - Chrome 应用程序 - 无法读取未定义的属性“连接”
- batch-file - 批量检查/获取 URL 中的变量
- python - 从文本文件中提取特定数据
- c++ - 通过自制软件(macOS)安装的 clang++:编译错误
- xml - Jackson XML 仅对指定标签进行反序列化
- sphinx - SphinxQL 匹配相当于 MySQL LIKE %searchterm%
- javascript - 从列表中删除项目时,Redux 分页不起作用