最近在使用 Docker 進行項目部署時,遇到了一個問題:Docker 只能通過橋接一個網絡。原因是 Docker 使用的是 Linux Bridge 實現的網絡功能,Linux Bridge 是一個二層協議,只能在一個網段生效,無法實現跨網段通信。
docker network create --subnet=172.18.0.0/16 mynet
上面的代碼創建了一個名為 mynet 的網絡,并為該網絡指定了一個子網。如果我們需要創建另一個網絡,那么就需要為該網絡指定不同的子網,但是這會導致網絡配置比較繁瑣。
另外,如果需要將多個容器部署到不同的服務器上,那么也無法通過橋接網絡實現它們之間的通信。這時候需要使用 Overlay 網絡,但是 Overlay 網絡需要 Swarm 模式的支持,使用起來相對復雜。
因此,在使用 Docker 進行項目部署時,建議將 Docker 部署到同一臺服務器上,并將需要通信的容器部署到同一個網絡中。如果需要將容器部署到多臺服務器上,可以考慮使用 Kubernetes 等容器編排工具。