docker network connect
描述 | 將容器連線到網路 |
---|---|
用法 | docker network connect [OPTIONS] NETWORK CONTAINER |
描述
將容器連線到網路。您可以透過名稱或 ID 連線容器。連線後,容器可以與同一網路中的其他容器通訊。
選項
選項 | 預設值 | 描述 |
---|---|---|
--alias | 為容器新增網路範圍別名 | |
--driver-opt | 網路的驅動程式選項 | |
--gw-priority | 最高閘道器優先順序提供預設閘道器。接受正值和負值。 | |
--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=
選項啟動容器並立即將其連線到網路。
$ 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
為容器介面設定 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=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
網路或支援多主機連線的自定義外掛,連線到同一多主機網路但從不同引擎啟動的容器也可以透過這種方式進行通訊。
您可以將容器連線到一個或多個網路。這些網路不必是同一型別。例如,您可以將單個容器橋接到覆蓋網路。