除了 none, host, bridge 這三個自動建立的網絡,用戶也能夠根據業務須要建立 user-defined 網絡。docker
Docker 提供三種 user-defined 網絡驅動:bridge, overlay 和 macvlan。overlay 和 macvlan 用於建立跨主機的網絡,咱們後面有章節單獨討論。網絡
咱們可經過 bridge 驅動建立相似前面默認的 bridge 網絡,例如:code
查看一下當前 host 的網絡結構變化:ip
新增了一個網橋 br-eaed97dc9a77
,這裏 eaed97dc9a77
正好新建 bridge 網絡 my_net
的短 id。執行 docker network inspect
查看一下 my_net
的配置信息:容器
這裏 172.18.0.0/16 是 Docker 自動分配的 IP 網段。配置
咱們能夠本身指定 IP 網段嗎?
答案是:能夠。network
只需在建立網段時指定 --subnet
和 --gateway
參數:二維碼
這裏咱們建立了新的 bridge 網絡 my_net2
,網段爲 172.22.16.0/24,網關爲 172.22.16.1。與前面同樣,網關在 my_net2
對應的網橋 br-5d863e9f78b6
上:im
容器要使用新的網絡,須要在啓動時經過 --network
指定:img
容器分配到的 IP 爲 172.22.16.2。
到目前爲止,容器的 IP 都是 docker 自動從 subnet 中分配,咱們可否指定一個靜態 IP 呢?
答案是:能夠,經過--ip
指定。
注:只有使用 --subnet
建立的網絡才能指定靜態 IP。
my_net
建立時沒有指定 --subnet
,若是指定靜態 IP 報錯以下:
好了,咱們來看看當前 docker host 的網絡拓撲結構。
下一節討論這幾個容器之間的連通性。