【问题标题】:How to distinguish whether to prune Docker images with --all in Ansible?Ansible 中如何区分是否使用 --all 修剪 Docker 镜像?
【发布时间】:2020-08-28 16:52:03
【问题描述】:

在 Ansible 剧本中,我们可以请求相当于调用的内容

docker image prune

通过这个:

- name: Clean up Docker images
  docker_prune:
    images: yes

但是,似乎没有办法请求--all,即修剪所有未在容器中使用的图像。无论如何,默认情况下它不会这样做:

TASK [role : Clean up Docker images] ***
ok: [server] => {
    "changed": false, 
    "images": [], 
    "images_space_reclaimed": 0
}

显然,images_filters 的选项与 CLI Docker 选项不直接对应:

用于选择要删除的图像的过滤器值字典。 例如,dangling: true。 有关可能的过滤器的更多信息,请参阅docker documentation

不幸的是,该选项根本没有记录;去掉悬空的图片是默认的,那么true 有什么作用呢?

我如何告诉 Ansible 执行 docker image prune --all 的等效操作?

【问题讨论】:

    标签: docker ansible devops


    【解决方案1】:

    诀窍是正确猜测 dangling: true 的意思是“修剪 only 悬空的”。因此,这个任务做了我们想要的:

    - name: Clean up Docker images
      docker_prune:
        images: yes
        images_filters:
          dangling: false
    
    TASK [role : Clean up Docker images] ***
    ok: [server] => {
      "changed": false,
      "images": [
        {
          "Untagged": "docker.io/ruby:alpine"
        },
        {
          "Untagged": "docker.io/ruby@sha256:cbcf3c98e7bd7dfd0a535c91a6c186eed483680cefe0c99ed1ed46d6efbb0e7b"
        },
        {
          "Deleted": "sha256:47c30d96ab20f3004776ff14fce824960f94dd8ba40f689a839d250befa8924e"
        },
        {
          "Deleted": "sha256:1ffdfb9e5dfb8e61532391c9624539dfe6695fa535d8dd375019ae910bc6a263"
        },
        {
          "Deleted": "sha256:59d90740fdbf9dae0a8c7e824cdb25b6636ab7c56d5d90a1ed52cc523123ef7f"
        },
        {
          "Deleted": "sha256:e0b257ffac8a68382fb702142120625ee8c7c579dd22143ac8ee02e0bb23e1eb"
        },
        {
          "Deleted": "sha256:d6fd80a889d96453e9b6b27c475952f0cc90fa6c0d1d922024cb4158362e16eb"
        },
        {
          "Deleted": "sha256:1bfeebd65323b8ddf5bd6a51cc7097b72788bc982e9ab3280d53d3c613adffa7"
        }
      ],
      "images_space_reclaimed": 51040409
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-24
      • 2017-09-10
      • 2019-07-04
      • 2023-01-14
      • 2022-10-15
      • 2022-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多