Networking

開發中的 Docker-Compose - 管理子網

  • October 9, 2018

我目前正在與一小群人一起使用 Docker-Compose 進行開發。我將描述我們目前面臨的設置和場景。

我們在 VCS 中籤入了一個項目。開發人員檢查了這一點並執行“docker-compose up”,所有這些都在單個主機上,但在主文件夾中。這將創建預設網路並自動將子網分配給新的預設網路(到目前為止,“docker-compose”)。這對我們來說非常有用,因為它將開發環境彼此隔離,並允許我們使用命名服務來訪問我們的 Compose 文件中的數據庫等 - 所有這些都無需踩腳,開發人員無需手動配置任何內容。

障礙是; 這個預設網路有一個不斷增加的子網 172.*.0.0。在我們到達公司網路上目前正在使用的子網之前,這很好。例如:我們的 VPN 使用 172.19.0.0。我們有大約 4 或 5 個這樣的子網,當足夠多的開發人員啟動堆棧時,一旦我們遇到這些子網,就會產生訪問問題。

其他人如何使用 Docker Compose 管理這種情況以進行開發?

本質上,我們有許多執行 Docker 的主機,有許多不同的應用程序,每個應用程序上有許多開發人員。在撰寫文件中定義單個子網;每個使用者;每個應用程序(以確保所有子網都是唯一的,無論主機如何)將成為管理的絕對噩夢,並且可能成為電子表格管理的練習。

我什至找不到強制 Docker-Compose 使用不同子網範圍的方法,例如 10.0.0.0 等——這在我們的公司網路上會很好。

任何有關這種配置的幫助將不勝感激。其他人肯定使用 Docker-Compose 來創建開發環境嗎?

問候

Docker 18.06 引入了--default-address-pool選項. 使用它,您可以指定使用者定義的網路預設使用的地址範圍,如果沒有使用--subnet網路參數明確設置。您可以查看功能已實現和討論的拉取請求以獲取更多資訊:moby /29376 , moby/ 36054moby/36396

--default-addr-pool

此標誌指定全域範圍網路的預設子網池。格式範例是--default-addr-pool 30.30.0.0/16 --default-addr-pool 40.40.0.0/16

引用自:https://serverfault.com/questions/844376