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 網路或支援多主機連線的自定義外掛,連線到同一多主機網路但從不同引擎啟動的容器也可以透過這種方式進行通訊。

您可以將容器連線到一個或多個網路。這些網路不必是同一型別。例如,您可以將單個容器橋接到覆蓋網路。