如何設置自定義Docker網絡的默認值

在使用Docker的時候,咱們經常須要建立自定義網絡。比較常見的方式有:docker

  • 使用 DockerCompose , 一般配置好 docker-compose.yml 後,經過 docker-compose up 來建立。
  • 直接使用 Docker ,一般經過 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

相關文章
相關標籤/搜索