Docker 网络连接

描述将容器连接到网络
用法docker network connect [OPTIONS] NETWORK CONTAINER

描述

将容器连接到网络。您可以按名称连接容器 或通过 ID 进行。连接后,容器可以与 同一个网络。

选项

选择违约描述
--alias为容器添加网络范围的别名
--driver-opt网络的驱动程序选项
--ipIPv4 地址(例如172.30.100.104)
--ip6IPv6 地址(例如2001:db8::33)
--link向另一个容器添加链接
--link-local-ip为容器添加链接本地地址

例子

将正在运行的容器连接到网络

$ docker network connect multi-host-network container1

在容器启动时将容器连接到网络

您还可以使用docker run --network=<network-name>选项启动 容器,并立即将其连接到网络。

$ docker run -itd --network=multi-host-network busybox

指定容器将在给定网络上使用的 IP 地址 (--ip)

您可以指定要分配给容器接口的 IP 地址。

$ docker network connect --ip 10.10.36.122 multi-host-network container2

您可以使用--link选项将另一个容器与首选别名链接。

$ docker network connect --link container1:c1 multi-host-network container2

为容器创建网络别名 (--alias)

--alias选项可用于按网络中的其他名称解析容器 正在连接。

$ docker network connect --alias db --alias mysql multi-host-network container2

为容器的接口设置 sysctl 参数 (--driver-opt)

sysctlnet.ipv4.net.ipv6.可以按接口设置 用--driver-opt标签com.docker.network.endpoint.sysctls.的名称 interface 必须替换为IFNAME.

设置多个sysctl对于接口,请引用driver-opt字段中,请记住在必要时转义 shell 的引号。 例如,如果my-net是给定名称eth3,以下示例 集net.ipv4.conf.eth3.log_martians=1net.ipv4.conf.eth3.forwarding=0.

$ docker network connect --driver-opt=\"com.docker.network.endpoint.sysctls=net.ipv4.conf.IFNAME.log_martians=1,net.ipv4.conf.IFNAME.forwarding=0\" multi-host-network container2

注意

网络驱动程序可能会限制可以修改的 sysctl 设置,并且为了保护 网络的运行,将来可能会添加新的限制。

停止、暂停或重启容器的网络影响

您可以暂停、重新启动和停止连接到网络的容器。 容器在运行时连接到其配置的网络。

如果指定,则容器的 IP 地址将在停止 容器已重新启动。如果 IP 地址不再可用,则容器 无法启动。保证 IP 地址可用的一种方法是 要指定--ip-range创建网络时,选择静态 IP 地址。这可确保 IP 地址不是 当此容器不在网络上时,将其分配给另一个容器。

$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
$ docker network connect --ip 172.20.128.2 multi-host-network container2

要验证容器是否已连接,请使用docker network inspect命令。 用docker network disconnect从网络中删除容器。

一旦连接到网络中,容器只能使用另一个容器进行通信 容器的 IP 地址或名称。为overlaynetworks 或自定义插件 支持多主机连接,容器连接到同一个多主机 网络,但从不同的 Engine 也可以通过这种方式进行通信。

您可以将容器连接到一个或多个网络。网络不需要 相同类型。例如,您可以连接单个容器桥和叠加层 网络。