网络

在服务器上创建和管理网络。有关网络的详细信息,请参见 see the Engine documentation

上提供的方法 client.networks

class NetworkCollection
create(name, *args, **kwargs)

创建一个网络。类似于 docker network create

参数:
  • name (str) -- 网络名称

  • driver (str) -- 用于创建网络的驱动程序的名称

  • options (dict) -- 作为键值字典的驱动程序选项

  • ipam (IPAMConfig) -- 网络的可选自定义IP方案。

  • check_duplicate (bool) -- 请求守护程序检查同名网络。默认: None

  • internal (bool) -- 限制对网络的外部访问。默认 False

  • labels (dict) -- 要在网络上设置的标签映射。默认 None

  • enable_ipv6 (bool) -- 在网络上启用IPv6。默认 False

  • attachable (bool) -- 如果启用,并且网络在全局范围内,则工作节点上的非服务容器将能够连接到网络。

  • scope (str) -- 指定网络的范围 (localglobalswarm )

  • ingress (bool) -- 如果设置,则创建以群模式提供布线网格的入口网络。

返回:

创建的网络。

返回类型:

(Network )

抛出:

docker.errors.APIError -- 如果服务器返回错误。

示例

使用网桥驱动程序的网络:

>>> client.networks.create("network1", driver="bridge")

您还可以使用自定义IPAM配置创建更高级的网络。例如,将该子网设置为 192.168.52.0/24 和网关地址发送到 192.168.52.254

>>> ipam_pool = docker.types.IPAMPool(
    subnet='192.168.52.0/24',
    gateway='192.168.52.254'
)
>>> ipam_config = docker.types.IPAMConfig(
    pool_configs=[ipam_pool]
)
>>> client.networks.create(
    "network1",
    driver="bridge",
    ipam=ipam_config
)
get(network_id, *args, **kwargs)

根据ID获取网络。

参数:
  • network_id (str) -- 网络的ID。

  • verbose (bool) -- 以群模式跨群检索服务详细信息。

  • scope (str) -- 按作用域过滤网络 (swarmgloballocal )。

返回:

(Network )网络。

抛出:
  • docker.errors.NotFound -- 如果网络不存在。

  • docker.errors.APIError -- 如果服务器返回错误。

list(*args, **kwargs)

列出网络。类似于 docker network ls 指挥部。

参数:
  • names (list) -- 作为筛选依据的名称列表。

  • ids (list) -- 筛选依据的ID列表。

  • filters (dict) -- 要在网络列表上处理的过滤器。可用过滤器:- driver=[<driver-name>] 匹配网络的驱动程序。- label (字符串|列表):格式 "key""key=value" 或者一份这样的清单。- type=["custom"|"builtin"] 按类型过滤网络。

  • greedy (bool) -- 分别获取每个网络的更多详细信息。你可能想用这个把容器固定在上面。

返回:

(列表 Network )服务器上的网络。

抛出:

docker.errors.APIError -- 如果服务器返回错误。

prune(filters=None)

删除未使用的网络

参数:

filters (dict) -- 要在清理列表上处理的筛选器。

返回:

包含已删除网络名称列表和回收的磁盘空间量(以字节为单位)的字典。

返回类型:

(dict)

抛出:

docker.errors.APIError -- 如果服务器返回错误。

网络对象

class Network

一个码头工人网络。

id

对象的ID。

short_id

对象的ID,截断为12个字符。

name

网络的名称。

containers

连接到网络的容器,作为 Container 物体。

attrs

服务器中此对象的原始表示形式。

connect(container, *args, **kwargs)

将容器连接到此网络。

参数:
  • container (str) -- 连接到此网络的容器,作为ID、名称或 Container 对象。

  • aliases (list) -- 此终结点的别名列表。该列表中的名称可以在网络中使用以到达容器。默认为 None

  • links (list) -- 此终结点的链接列表。此列表中声明的容器将链接到此容器。默认为 None

  • ipv4_address (str) -- 使用IPv4协议的网络上此容器的IP地址。默认为 None

  • ipv6_address (str) -- 使用IPv6协议的网络上此容器的IP地址。默认为 None

  • link_local_ips (list) -- 本地链路(IPv4/IPv6)地址列表。

  • driver_opt (dict) -- 提供给网络驱动程序的选项词典。默认为 None

抛出:

docker.errors.APIError -- 如果服务器返回错误。

disconnect(container, *args, **kwargs)

断开容器与此网络的连接。

参数:
  • container (str) -- 要与此网络断开连接的容器,作为ID、名称或 Container 对象。

  • force (bool) -- 强制容器断开与网络的连接。默认: False

抛出:

docker.errors.APIError -- 如果服务器返回错误。

reload()

再次从服务器加载此对象并更新 attrs 使用新的数据。

remove()

删除此网络。

抛出:

docker.errors.APIError -- 如果服务器返回错误。