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 提供 bridge 和 overlay 驱动程序,但也可以使用第三方驱动程序。 默认值: |
|
网络设置字典。请参阅 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 |
在 |
|
支持:完全支持 |
可以在 |
|
支持:完全支持 |
在差异模式下,将返回有关已更改内容(或可能需要在 |
注释
注意
更改网络选项后,模块将断开网络上的所有容器的连接,删除网络并重新创建网络。它不会尝试重新连接容器,除了在(
connected
)中列出的容器,即使对于这些容器,它也不会考虑特定的连接选项,例如固定 IP 地址或 MAC 地址。如果您需要更多地控制容器如何连接到网络,请循环使用community.docker.docker_container模块来循环遍历您的容器,以确保它们已正确连接。该模块不支持 Docker Swarm。这意味着它不会尝试断开或重新连接服务。如果服务连接到网络,则删除网络将失败。更改网络选项时,必须删除并重新创建网络,因此这也将失败。
通过为每个任务提供参数或定义环境变量来连接到 Docker daemon。您可以定义
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 SDK for Python 与 Docker daemon 通信。它使用来自 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
返回值
常见返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
受影响网络的网络检查结果。 返回:成功 示例: |