如何使用 ansible docker 模块列出特定 docker 网络中的所有容器

Dav*_*ave 1 networking list ansible docker

如何使用 docker ansible 模块列出特定网络中的所有容器?我想在不使用 ansibleshell命令的情况下完成此任务。

这可能吗?

我发现这篇文章shell如果我使用命令就可以工作。但话又说回来,我不想那样做。我该如何使用 docker ansible 模块?

lar*_*sks 5

您可以使用该community.docker.docker_network_info模块来检查网络;返回的信息包括连接到网络的容器列表。

例如,此剧本将显示附加到docker_network变量中网络名称的容器列表:

- hosts: localhost
  gather_facts: false
  vars:
    docker_network: bridge
  collections:
    - community.docker
  tasks:
    - name: "get network info"
      docker_network_info:
        name: "{{ docker_network }}"
      register: net_info

    - name: "get container info"
      docker_container_info:
        name: "{{ item }}"
      register: container_info
      loop: "{{ net_info.network.Containers.keys() }}"

    - debug:
        msg: "{{ item }}"
      loop: "{{ container_info.results|json_query('[].container.Name') }}"
Run Code Online (Sandbox Code Playgroud)