community.docker.docker_network 模块 – 管理 Docker 网络
注意
此模块是 community.docker 集合(版本 4.1.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.docker
。您需要进一步的要求才能使用此模块,请参阅 要求 以了解详细信息。
要在 playbook 中使用它,请指定:community.docker.docker_network
。
概要
创建/删除 Docker 网络并将容器连接到它们。
执行的功能与
docker network
CLI 子命令基本相同。
要求
以下要求需要在执行此模块的主机上满足。
Docker API >= 1.25
backports.ssl_match_hostname(在 Python 2 上使用 TLS 时)
paramiko(当使用 SSH 和
use_ssh_client=false
时)pyOpenSSL(当使用 TLS 时)
pywin32(当在 Windows 32 上使用命名管道时)
requests
参数
参数 |
注释 |
---|---|
Docker 主机上运行的 Docker API 版本。 默认为此集合和 docker 守护程序支持的最新版本的 API。 如果未在任务中指定该值,则将使用环境变量 默认值: |
|
如果启用,并且网络在全局范围内,则工作节点上的非服务容器将能够连接到该网络。 选项
|
|
通过提供 CA 证书文件的路径,在使用服务器验证时使用 CA 证书。 如果未在任务中指定该值,并且设置了环境变量 此选项曾被称为 |
|
客户端 TLS 证书文件的路径。 如果任务中未指定该值,并且设置了环境变量 |
|
客户端 TLS 密钥文件的路径。 如果任务中未指定该值,并且设置了环境变量 |
|
指定要从中获取配置的仅配置网络。 |
|
设置这是一个仅配置网络。 选项
|
|
要连接到网络的容器名称或容器 ID 的列表。 请注意,该模块仅确保这些容器已连接到网络,但不关心连接选项。如果您依赖特定的 IP 地址等,请使用 community.docker.docker_container 模块来确保您的容器正确连接到此网络。 默认值: |
|
调试模式 选项
|
|
用于连接到 Docker API 的 URL 或 Unix 套接字路径。 要连接到远程主机,请提供 TCP 连接字符串。 例如, 如果任务中未指定该值,则将使用环境变量 默认值: |
|
指定网络类型。 Docker 提供桥接和覆盖驱动程序,但也可以使用第三方驱动程序。 默认值: |
|
网络设置的字典。 请查阅 docker 文档以获取有效的选项和值。 默认值: |
|
启用 IPv6 网络。 选项
|
|
当状态为 如果您已更改 IPAM 或驱动程序选项,并且希望更新现有网络以使用新选项,则此选项是必需的。 选项
|
|
限制对网络的外部访问。 选项
|
|
IPAM 配置块的列表。 请查阅 Docker 文档 以获取有效的选项和值。 请注意,这里的 |
|
网络驱动程序使用的辅助 IP 地址,作为主机名到 IP 的映射。 |
|
IP 网关地址。 |
|
CIDR 表示法中的 IP 地址范围。 |
|
CIDR 表示法中的 IP 子集。 |
|
指定 IPAM 驱动程序。 |
|
IPAM 驱动程序选项的字典。 |
|
标签的字典。 默认值: |
|
要操作的网络的名称。 |
|
指定网络的范围。 选项
|
|
通过使用 TLS 来保护与 API 的连接,而不验证 Docker 主机服务器的真实性。 请注意,如果还将 如果任务中未指定该值,则将使用环境变量 选项
|
|
验证 Docker 主机服务器的真实性时,请提供服务器的预期名称。 如果任务中未指定该值,则将使用环境变量 请注意,此选项在较旧的版本中的默认值为 |
|
对于 SSH 传输,请使用 选项
|
|
通过使用 TLS 并验证 Docker 主机服务器的真实性来保护与 API 的连接。 如果任务中未指定该值,则将使用环境变量 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
操作组: community.docker.docker, docker |
在 |
|
支持: 完全 |
可以在 |
|
支持: 完全 |
当处于 diff 模式时,将返回有关已更改内容(或可能需要在 |
注释
注意
更改网络选项时,该模块将断开所有容器与网络的连接,删除网络并重新创建网络。 它不会尝试重新连接容器,除了在 (
connected
中列出的容器,即使对于这些容器,它也不考虑诸如固定 IP 地址或 MAC 地址之类的特定连接选项。 如果您需要更好地控制容器如何连接到网络,请循环使用 community.docker.docker_container 模块来循环遍历您的容器,以确保它们已正确连接。该模块不支持 Docker Swarm。 这意味着它不会尝试断开或重新连接服务。 如果服务已连接到网络,则删除网络将失败。 更改网络选项时,必须删除并重新创建网络,因此也会失败。
可以通过在每个任务中提供参数或定义环境变量来连接 Docker 守护进程。您可以定义
DOCKER_HOST
,DOCKER_TLS_HOSTNAME
,DOCKER_API_VERSION
,DOCKER_CERT_PATH
,DOCKER_TLS
,DOCKER_TLS_VERIFY
和DOCKER_TIMEOUT
。如果您正在使用 docker machine,请运行产品附带的脚本来设置环境。它会为您设置这些变量。有关更多详细信息,请参阅 https://docs.docker.net.cn/machine/reference/env/。此模块不使用 Docker Python SDK 与 Docker 守护进程通信。它使用来自 Docker SDK 或 Python 的代码,这些代码包含在此集合中。
示例
- name: Create a network
community.docker.docker_network:
name: network_one
- name: Remove all but selected list of containers
community.docker.docker_network:
name: network_one
connected:
- container_a
- container_b
- container_c
- name: Remove a single container
community.docker.docker_network:
name: network_one
connected: "{{ fulllist|difference(['container_a']) }}"
- name: Add a container to a network, leaving existing containers connected
community.docker.docker_network:
name: network_one
connected:
- container_a
appends: true
- name: Create a network with driver options
community.docker.docker_network:
name: network_two
driver_options:
com.docker.network.bridge.name: net2
- name: Create a network with custom IPAM config
community.docker.docker_network:
name: network_three
ipam_config:
- subnet: 172.23.27.0/24
gateway: 172.23.27.2
iprange: 172.23.27.0/26
aux_addresses:
host1: 172.23.27.3
host2: 172.23.27.4
- name: Create a network with labels
community.docker.docker_network:
name: network_four
labels:
key1: value1
key2: value2
- name: Create a network with IPv6 IPAM config
community.docker.docker_network:
name: network_ipv6_one
enable_ipv6: true
ipam_config:
- subnet: fdd1:ac8c:0557:7ce1::/64
- name: Create a network with IPv6 and custom IPv4 IPAM config
community.docker.docker_network:
name: network_ipv6_two
enable_ipv6: true
ipam_config:
- subnet: 172.24.27.0/24
- subnet: fdd1:ac8c:0557:7ce2::/64
- name: Delete a network, disconnecting all containers
community.docker.docker_network:
name: network_one
state: absent
force: true
返回值
通用返回值记录在 此处,以下是此模块特有的字段
键 |
描述 |
---|---|
受影响网络的网络检查结果。 返回: 成功 示例: |