Rap*_*ael 5 ansible docker devops
在 Ansible playbook 中,我们可以请求相当于调用
docker image prune
Run Code Online (Sandbox Code Playgroud)
这样:
docker image prune
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有一种方法可以请求--all
,即修剪容器中未使用的所有图像。无论如何,默认情况下它不会这样做:
TASK [role : Clean up Docker images] ***
ok: [server] => {
"changed": false,
"images": [],
"images_space_reclaimed": 0
}
Run Code Online (Sandbox Code Playgroud)
显然,images_filters
有一些选项与 CLI Docker 选项不直接对应:
用于选择要删除的图像的过滤器值字典。例如,
dangling: true
。有关可能的过滤器的更多信息,请参阅docker 文档。
不幸的是,这个选项根本没有记录在案。删除悬空图像是默认设置,那么true
甚至会产生什么效果呢?
我如何告诉 Ansible 执行相当于 的操作docker image prune --all
?
诀窍是正确猜测这dangling: true
意味着“仅修剪悬空”。因此,这个任务完成了我们想要的:
- name: Clean up Docker images
docker_prune:
images: yes
images_filters:
dangling: false
Run Code Online (Sandbox Code Playgroud)
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
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2809 次 |
最近记录: |