docker network connect

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

描述

将容器连接到网络。您可以通过名称或 ID 连接容器。连接后,容器可以与同一网络中的其他容器通信。

选项

选项默认值描述
--alias为容器添加网络范围别名
--driver-opt网络的驱动程序选项
--gw-priority最高网关优先级提供默认网关。接受正值和负值。
--ipIPv4 地址(例如,172.30.100.104
--ip6IPv6 地址(例如,2001:db8::33
--link链接到另一个容器
--link-local-ip为容器添加一个链路本地地址

示例

将运行中的容器连接到网络

$ docker network connect multi-host-network container1

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

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

$ 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)

net.ipv4.net.ipv6. 开头的 sysctl 设置可以使用 --driver-opt 标签 com.docker.network.endpoint.sysctls 按接口设置。接口名称必须替换为 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 地址或名称进行通信。对于 overlay 网络或支持多主机连接的自定义插件,连接到同一多主机网络但从不同引擎启动的容器也可以通过这种方式进行通信。

您可以将容器连接到一个或多个网络。这些网络不必是同一类型。例如,您可以将单个容器桥接到覆盖网络。

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.