使用Ansible模块删除所有图像



我知道如何使用shell删除所有图像:

- shell: |
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)
exit 0

此外,我可以用docker_image通过名称删除图像:

- name: Remove image
docker_image:
state: absent
name: {{image_name}}

但是,有没有一种方法可以使用docker_image模块或任何其他用于使用docker的Ansible模块删除所有图像?

您必须分多个步骤来完成,就像您的子shell正在执行的那样:

  1. 使用模块docker_host_info列出docker对象,包括图像和容器
  2. 使用模块docker_container移除所有这些容器
  3. 使用模块docker_image module删除所有这些图像

因此,在Ansible:中

- docker_host_info:
images: yes
containers: yes
register: docker_objects
- docker_container:
name: "{{ item.Id }}"
state: absent
loop: "{{ docker_objects.containers }}"
loop_control:
label: "{{ item.Id }}"
- docker_image:
name: item.RepoTags | first
state: absent
force_absent: yes
loop: "{{ docker_objects.images }}"
loop_control:
label: "{{ item.RepoTags | first }}"

最新更新