在使用Docker的時候,咱們經常須要建立自定義網絡。比較常見的方式有:docker
docker-compose up
來建立。docker network create
來建立。默認狀況下,這兩種方式建立自定義網絡,默認會從 172.20.0.0/16 選取可用網段。雖然Docker會自動跳過宿主機所在的網段。可是若是不是宿主機所在,但又是宿主機環境中但網段呢?Docker默認是感知不到的。這種狀況下,就須要咱們修改自定義網絡的網段了。json
對應上面的使用方式,要想修改自定義網段,方法分別是網絡
docker-compose.yml
中配置網絡的 networks.default.ipam.config.subnet 選項。docker network create
命令的 --subnet
參數指定。這兩種方式都要手動指定。仍然不方便。好比第一種方式,若是docker-compose.yml
須要提交到代碼庫,那寫死的網段配置在每一個用戶那裏就有可能衝突。那麼有沒有什麼一勞永逸的辦法呢? 有!那就是直接修改Docker Daemon的配置。在 /etc/docker/daemon.json
中增長以下設置:spa
{
"default-address-pools":[
{"base":"10.10.0.0/16","size":24}
]
}
複製代碼
重啓docker後,新建立自定義網絡(無論是經過DockerCompose仍是直接docker命令)默認就會從這裏給定的地址池中分配。code