如何使用Ansible Docker模块列出指定Docker网络中的所有容器
使用Ansible Docker模块列出指定网络中的容器
完全可以通过Ansible的Docker模块实现,无需依赖shell命令。你可以使用community.docker.docker_network_info模块获取指定Docker网络的详细信息,其中包含连接到该网络的所有容器数据。
具体Playbook示例
--- - name: 获取指定Docker网络下的容器列表 hosts: target_hosts tasks: # 查询目标网络的详细元数据 - name: 拉取指定Docker网络信息 community.docker.docker_network_info: name: your_target_network # 替换为你的目标网络名称 register: network_details # 提取并输出容器名称 - name: 列出连接到该网络的容器 debug: msg: "连接到网络的容器: {{ network_details.network.Containers | dict2items | map(attribute='value.Name') | list }}"
关键说明
docker_network_info模块返回的结果中,network.Containers是一个以容器ID为键的字典,每个值包含容器名称、端点ID等信息- 通过
dict2items将字典转换为键值对列表,再用map(attribute='value.Name')提取容器名称,最终整理为列表输出 - 执行前确保已安装
community.docker集合:ansible-galaxy collection install community.docker
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

