?
This document uses PHP Chinese website manual Release
創(chuàng)建網(wǎng)絡(luò)
docker network create [OPTIONS] NETWORK
名稱,簡(jiǎn)寫(xiě) | 默認(rèn) | 描述 |
---|---|---|
--attachable | false | 啟用手動(dòng)容器附件 |
--aux地址 | map[] | 網(wǎng)絡(luò)驅(qū)動(dòng)程序使用的輔助IPv4或IPv6地址 |
--config-from | 從中復(fù)制配置的網(wǎng)絡(luò) | |
--config-only | false | 創(chuàng)建一個(gè)僅配置網(wǎng)絡(luò) |
--driver,-d | bridge | 驅(qū)動(dòng)程序來(lái)管理網(wǎng)絡(luò) |
--gateway | 主子網(wǎng)的IPv4或IPv6網(wǎng)關(guān) | |
--ingress | false | 創(chuàng)建群體路由網(wǎng)狀網(wǎng)絡(luò) |
--internal | false | 限制對(duì)網(wǎng)絡(luò)的外部訪問(wèn) |
--ip-range | 從子范圍分配容器IP | |
--ipam-driver | default | IP地址管理驅(qū)動(dòng)程序 |
--ipam-opt | map[] | 設(shè)置IPAM驅(qū)動(dòng)程序特定選項(xiàng) |
--ipv6 | false | 啟用IPv6網(wǎng)絡(luò) |
--label | 在網(wǎng)絡(luò)上設(shè)置元數(shù)據(jù) | |
--opt, -o | map[] | 設(shè)置驅(qū)動(dòng)程序特定選項(xiàng) |
--scope | 控制網(wǎng)絡(luò)的范圍 | |
--subnet | 表示網(wǎng)段的CIDR格式的子網(wǎng) |
命令 | 描述 |
---|---|
docker網(wǎng)絡(luò) | 管理網(wǎng)絡(luò) |
命令 | 描述 |
---|---|
docker network connect | 將容器連接到網(wǎng)絡(luò) |
docker network create | 創(chuàng)建一個(gè)網(wǎng)絡(luò) |
docker network disconnect | 從網(wǎng)絡(luò)斷開(kāi)容器 |
docker network inspect | 顯示一個(gè)或多個(gè)網(wǎng)絡(luò)的詳細(xì)信息 |
docker network ls | 列出網(wǎng)絡(luò) |
docker network prune | 刪除所有未使用的網(wǎng)絡(luò) |
docker network rm | 刪除一個(gè)或多個(gè)網(wǎng)絡(luò) |
創(chuàng)建一個(gè)新的網(wǎng)絡(luò)。在DRIVER
接受bridge
或者overlay
它們是內(nèi)置的網(wǎng)絡(luò)驅(qū)動(dòng)程序。如果您已經(jīng)安裝了第三方或您自己的自定義網(wǎng)絡(luò)驅(qū)動(dòng)程序,您也可以DRIVER
在此處指定。如果您不指定該--driver
選項(xiàng),該命令將自動(dòng)bridge
為您創(chuàng)建一個(gè)網(wǎng)絡(luò)。當(dāng)您安裝Docker Engine時(shí),它會(huì)bridge
自動(dòng)創(chuàng)建一個(gè)網(wǎng)絡(luò)。該網(wǎng)絡(luò)對(duì)應(yīng)于docker0
引擎?zhèn)鹘y(tǒng)依賴的橋梁。當(dāng)你啟動(dòng)一個(gè)新的容器時(shí),docker run
它會(huì)自動(dòng)連接到這個(gè)網(wǎng)橋。您無(wú)法刪除此默認(rèn)橋接網(wǎng)絡(luò),但可以使用該network create
命令創(chuàng)建新橋接網(wǎng)絡(luò)。
$ docker network create -d bridge my-bridge-network
橋接網(wǎng)絡(luò)是單個(gè)引擎安裝中的隔離網(wǎng)絡(luò)。如果您想創(chuàng)建一個(gè)跨多個(gè)運(yùn)行引擎的多個(gè)Docker主機(jī)的overlay
網(wǎng)絡(luò),則必須創(chuàng)建一個(gè)網(wǎng)絡(luò)。與bridge
網(wǎng)絡(luò)不同,覆蓋網(wǎng)絡(luò)在創(chuàng)建之前需要一些預(yù)先存在的條件。這些條件是:
訪問(wèn)鍵值存儲(chǔ)。引擎支持Consul,Etcd和ZooKeeper(分布式存儲(chǔ))鍵值存儲(chǔ)。
連接到鍵值存儲(chǔ)的主機(jī)集群。
daemon
集群中每臺(tái)主機(jī)上配置正確的引擎。
dockerd
支持overlay
網(wǎng)絡(luò)的選項(xiàng)有:
--cluster-store
--cluster-store-opt
--cluster-advertise
要詳細(xì)了解這些選項(xiàng)以及如何配置它們,請(qǐng)參閱“ 多主機(jī)網(wǎng)絡(luò)入門(mén) ”。
雖然不是必需的,但安裝Docker Swarm來(lái)管理組成網(wǎng)絡(luò)的集群是一個(gè)不錯(cuò)的主意。Swarm提供了復(fù)雜的發(fā)現(xiàn)和服務(wù)器管理工具,可以幫助您實(shí)施。
準(zhǔn)備好overlay
網(wǎng)絡(luò)先決條件后,只需在集群中選擇Docker主機(jī)并發(fā)出以下命令即可創(chuàng)建網(wǎng)絡(luò):
$ docker network create -d overlay my-multihost-network
網(wǎng)絡(luò)名稱必須是唯一的。Docker守護(hù)進(jìn)程嘗試識(shí)別命名沖突,但不能保證。避免名稱沖突是用戶的責(zé)任。
當(dāng)您啟動(dòng)容器時(shí),請(qǐng)使用--network
標(biāo)志將其連接到網(wǎng)絡(luò)。本例將busybox
容器添加到mynet
網(wǎng)絡(luò)中:
$ docker run -itd --network=mynet busybox
如果要在容器已經(jīng)運(yùn)行后將容器添加到網(wǎng)絡(luò),請(qǐng)使用docker network connect
子命令。
您可以將多個(gè)容器連接到同一個(gè)網(wǎng)絡(luò)。連接后,容器只能使用另一個(gè)容器的IP地址或名稱進(jìn)行通信。對(duì)于overlay
支持多主機(jī)連接的網(wǎng)絡(luò)或自定義插件,連接到相同多主機(jī)網(wǎng)絡(luò)但從不同引擎啟動(dòng)的容器也可以通過(guò)這種方式進(jìn)行通信。
您可以使用該docker network disconnect
命令從網(wǎng)絡(luò)斷開(kāi)容器。
在創(chuàng)建網(wǎng)絡(luò)時(shí),Engine默認(rèn)會(huì)為網(wǎng)絡(luò)創(chuàng)建一個(gè)不重疊的子網(wǎng)。這個(gè)子網(wǎng)不是現(xiàn)有網(wǎng)絡(luò)的細(xì)分。這純粹是為了ip地址的目的。您可以覆蓋此默認(rèn)值并直接使用--subnet
選項(xiàng)指定子網(wǎng)值。在bridge
網(wǎng)絡(luò)上,您只能創(chuàng)建一個(gè)子網(wǎng):
$ docker network create --driver=bridge --subnet=192.168.0.0/16 br0
另外,您還可以指定--gateway
--ip-range
和--aux-address
選項(xiàng)。
$ docker network create \ --driver=bridge \ --subnet=172.28.0.0/16 \ --ip-range=172.28.5.0/24 \ --gateway=172.28.5.254 \ br0
如果您省略--gateway
標(biāo)志,引擎會(huì)從首選池中為您選擇一個(gè)。對(duì)于overlay
網(wǎng)絡(luò)和支持它的網(wǎng)絡(luò)驅(qū)動(dòng)程序插件,您可以創(chuàng)建多個(gè)子網(wǎng)。
$ docker network create -d overlay \ --subnet=192.168.0.0/16 \ --subnet=192.170.0.0/16 \ --gateway=192.168.0.100 \ --gateway=192.170.0.100 \ --ip-range=192.168.1.0/24 \ --aux-address="my-router=192.168.1.5" --aux-address="my-switch=192.168.1.6" \ --aux-address="my-printer=192.170.1.5" --aux-address="my-nas=192.170.1.6" \ my-multihost-network
確保你的子網(wǎng)不重疊。如果他們這樣做,網(wǎng)絡(luò)創(chuàng)建失敗,引擎返回錯(cuò)誤。
在創(chuàng)建自定義網(wǎng)絡(luò)時(shí),默認(rèn)網(wǎng)絡(luò)驅(qū)動(dòng)程序(即bridge
)具有可以傳遞的其他選項(xiàng)。以下是用于docker0橋的那些選項(xiàng)和等效的docker守護(hù)進(jìn)程標(biāo)志:
選項(xiàng) | 當(dāng)量 | 描述 |
---|---|---|
com.docker.network.bridge.name | - | 在創(chuàng)建Linux橋時(shí)要使用的橋名稱 |
com.docker.network.bridge.enable_ip_masquerade | --ip-masq | 啟用IP偽裝 |
com.docker.network.bridge.enable_icc | --icc | 啟用或禁用集裝箱間連接 |
com.docker.network.bridge.host_binding_ipv4 | --ip | 綁定容器端口時(shí)的默認(rèn)IP |
com.docker.network.driver.mtu | --mtu | 設(shè)置容器網(wǎng)絡(luò)MTU |
以下參數(shù)可以傳遞給docker network create
任何網(wǎng)絡(luò)驅(qū)動(dòng)程序,同樣也可以傳遞給它們的近似等價(jià)物docker daemon
。
論據(jù) | 當(dāng)量 | 描述 |
---|---|---|
--gateway | - | 主子網(wǎng)的IPv4或IPv6網(wǎng)關(guān) |
--ip范圍 | --fixed,CIDR | 從一個(gè)范圍分配IP |
- 內(nèi)部 | - | 限制對(duì)網(wǎng)絡(luò)的外部訪問(wèn) |
--ipv6 | --ipv6 | 啟用IPv6網(wǎng)絡(luò) |
--subnet | --bip | 網(wǎng)絡(luò)子網(wǎng) |
例如,讓我們使用-o
或--opt
在發(fā)布端口時(shí)指定IP地址綁定的選項(xiàng):
$ docker network create \ -o "com.docker.network.bridge.host_binding_ipv4"="172.19.0.1" \ simple-network
默認(rèn)情況下,當(dāng)您將容器連接到overlay
網(wǎng)絡(luò)時(shí),Docker也會(huì)將橋接網(wǎng)絡(luò)連接到它以提供外部連接。如果您想創(chuàng)建一個(gè)外部隔離的overlay
網(wǎng)絡(luò),您可以指定該--internal
選項(xiàng)。
您可以創(chuàng)建將用于在群集中提供路由網(wǎng)格的網(wǎng)絡(luò)。您可以通過(guò)--ingress
在創(chuàng)建網(wǎng)絡(luò)時(shí)指定。當(dāng)時(shí)只能創(chuàng)建一個(gè)入口網(wǎng)絡(luò)。只有在沒(méi)有服務(wù)依賴它的情況下才能刪除網(wǎng)絡(luò)。除了--attachable
選項(xiàng)之外,創(chuàng)建入口網(wǎng)絡(luò)時(shí)創(chuàng)建覆蓋網(wǎng)絡(luò)時(shí)可用的任何選項(xiàng)也可用。
$ docker network create -d overlay \ --subnet=10.11.0.0/16 \ --ingress \ --opt com.docker.network.mtu=9216 \ --opt encrypted=true \ my-ingress-network