1. 程式人生 > 程式設計 >如何設定自定義Docker網路的預設值

如何設定自定義Docker網路的預設值

在使用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命令)預設就會從這裡給定的地址池中分配。