如何設定自定義Docker網路的預設值
阿新 • • 發佈:2019-12-31
在使用Docker的時候,我們常常需要建立自定義網路。比較常見的方式有:
- 使用 DockerCompose,通常配置好 docker-compose.yml 後,通過
docker-compose up
來建立。 - 直接使用 Docker ,通常通過
docker network create
來建立。
預設情況下,這兩種方式建立自定義網路,預設會從 172.20.0.0/16 選取可用網段。雖然Docker會自動跳過宿主機所在的網段。但是如果不是宿主機所在,但又是宿主機環境中但網段呢?Docker預設是感知不到的。這種情況下,就需要我們修改自定義網路的網段了。
對應上面的使用方式,要想修改自定義網段,方法分別是
-
docker-compose.yml
中配置網路的 networks.default.ipam.config.subnet 選項。 -
docker network create
命令的--subnet
引數指定。
這兩種方式都要手動指定。仍然不方便。比如第一種方式,如果docker-compose.yml
需要提交到程式碼庫,那寫死的網段配置在每個使用者那裡就有可能衝突。那麼有沒有什麼一勞永逸的辦法呢?
有!那就是直接修改Docker Daemon的配置。在 /etc/docker/daemon.json
中增加如下設定:
{
"default-address-pools":[
{"base" :"10.10.0.0/16","size":24}
]
}
複製程式碼
重啟docker後,新建立自定義網路(不管是通過DockerCompose還是直接docker命令)預設就會從這裡給定的地址池中分配。