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 地址可用,建议在创建网络时使用
--ip-range指定动态分配范围,并从该范围之外选择静态 IP。例如:如果容器停止后重启,Docker 会尝试重新应用之前指定的 IP。若该 IP 已被占用,则容器启动失败。
4. 使用传统 --link 选项(仅适用于默认 bridge 网络)
--link 选项(仅适用于默认 bridge 网络)⚠️ 注意:
--link是旧版功能,在用户自定义网络中通常不需要,因为容器可通过名称或别名直接解析。
5. 为容器设置网络别名(--alias)
--alias)这样,在 multi-host-network 网络中的其他容器就可以通过 db 或 mysql 来访问 container2。
6. 为容器接口设置 sysctl 参数(--driver-opt)
--driver-opt)你可以通过 --driver-opt 设置特定于网络接口的内核参数(sysctl),特别是以 net.ipv4. 或 net.ipv6. 开头的参数。需将接口名替换为 IFNAME 占位符。
例如,假设容器在 multi-host-network 中的接口名为 eth3,可设置如下:
注意:网络驱动可能会限制可修改的 sysctl 参数。出于网络安全考虑,未来版本可能增加更多限制。
容器启停对网络的影响
你可以暂停、重启或停止已连接到网络的容器。
容器在启动时会自动连接到其配置的网络。
若指定了静态 IP,容器重启时会尝试重新使用该 IP。如果该 IP 不再可用,容器将无法启动。
验证连接
使用以下命令查看网络详情,确认容器是否已连接:
要断开容器与网络的连接,请使用:
跨主机通信
对于支持多主机通信的网络驱动(如 overlay 网络或某些第三方插件),即使容器运行在不同的 Docker 引擎上,只要它们连接到同一个多主机网络,也能通过容器名或 IP 直接通信。
多网络支持
一个容器可以同时连接到多个网络,且这些网络可以是不同类型(例如同时连接到 bridge 和 overlay 网络)。
最后更新于
这有帮助吗?