docker network connect
| 描述 | 将容器连接到网络 |
|---|---|
| 用法 | docker network connect [OPTIONS] NETWORK CONTAINER |
描述
将容器连接到网络。您可以通过名称或 ID 连接容器。连接后,该容器可以与同一网络中的其他容器进行通信。
选项
| 选项 | 默认 | 描述 |
|---|---|---|
--alias | 为容器添加网络范围的别名 | |
--driver-opt | 网络的驱动程序选项 | |
--ip | IPv4 地址 (例如, 172.30.100.104) | |
--ip6 | IPv6 地址 (例如, 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 选项 (--link)
您可以使用 --link 选项链接另一个容器,并指定一个首选别名。
$ docker network connect --link container1:c1 multi-host-network container2
为容器创建网络别名 (--alias)
--alias 选项可用于在正在连接的网络中通过另一个名称解析容器。
$ docker network connect --alias db --alias mysql multi-host-network container2
设置容器接口的系统参数 (--driver-opt)
sysctl 以 net.ipv4. 和 net.ipv6. 开头的设置可以使用 --driver-opt 标签 com.docker.network.endpoint.sysctls 按接口进行设置。接口的名称必须替换为 IFNAME。
要为接口设置多个 sysctl,请将 driver-opt 字段的整个值用引号括起来,如果需要,记得为 shell 转义引号。
例如,如果连接到 my-net 的接口名为 eth3,则以下示例设置了 net.ipv4.conf.eth3.log_martians=1 和 net.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 网络或支持多主机连接的自定义插件,连接到同一多主机网络但从不同引擎启动的容器也可以通过这种方式进行通信。
您可以将容器连接到一个或多个网络。这些网络不必是同一类型。例如,您可以将单个容器连接到 bridge 和 overlay 网络。