docker network connect

描述

将一个容器连接到指定的网络。

你可以通过容器名称或容器 ID 将其连接到网络。一旦连接成功,该容器就可以与同一网络中的其他容器进行通信。

用法

docker network connect [OPTIONS] NETWORK CONTAINER

选项

选项
默认值
描述

--alias

为容器添加网络作用域的别名(可在该网络中通过别名访问容器)

--driver-opt

网络驱动程序的选项

--ip

指定分配给容器接口的 IPv4 地址(例如:172.30.100.104)

--ip6

指定分配给容器接口的 IPv6 地址(例如:2001:db8::33)

--link

添加对另一个容器的链接(传统方式,不推荐在用户自定义网络中使用)

--link-local-ip

为容器添加链路本地(link-local)IP 地址

示例

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

2. 启动容器时直接连接到网络

你也可以在启动容器时通过 --network 选项将其连接到网络:

3. 指定容器在该网络中使用的 IP 地址(--ip

注意:为确保 IP 地址可用,建议在创建网络时使用 --ip-range 指定动态分配范围,并从该范围之外选择静态 IP。例如:

如果容器停止后重启,Docker 会尝试重新应用之前指定的 IP。若该 IP 已被占用,则容器启动失败。

⚠️ 注意:--link 是旧版功能,在用户自定义网络中通常不需要,因为容器可通过名称或别名直接解析。

5. 为容器设置网络别名(--alias

这样,在 multi-host-network 网络中的其他容器就可以通过 dbmysql 来访问 container2

6. 为容器接口设置 sysctl 参数(--driver-opt

你可以通过 --driver-opt 设置特定于网络接口的内核参数(sysctl),特别是以 net.ipv4.net.ipv6. 开头的参数。需将接口名替换为 IFNAME 占位符。

例如,假设容器在 multi-host-network 中的接口名为 eth3,可设置如下:

注意:网络驱动可能会限制可修改的 sysctl 参数。出于网络安全考虑,未来版本可能增加更多限制。

容器启停对网络的影响

  • 你可以暂停、重启或停止已连接到网络的容器。

  • 容器在启动时会自动连接到其配置的网络。

  • 若指定了静态 IP,容器重启时会尝试重新使用该 IP。如果该 IP 不再可用,容器将无法启动。

验证连接

使用以下命令查看网络详情,确认容器是否已连接:

要断开容器与网络的连接,请使用:

跨主机通信

对于支持多主机通信的网络驱动(如 overlay 网络或某些第三方插件),即使容器运行在不同的 Docker 引擎上,只要它们连接到同一个多主机网络,也能通过容器名或 IP 直接通信。

多网络支持

一个容器可以同时连接到多个网络,且这些网络可以是不同类型(例如同时连接到 bridgeoverlay 网络)。

最后更新于

这有帮助吗?