我有一個虛擬機
- eth0 上的公共 IP 地址
- ens01 (10.0.0.1) 上的內部私有 IP 地址
- ens01 上最多 5 個私有 IP 別名(10.0.0.2、.3、.4、.5、.6)
我想通過私有網路從另一個虛擬機上運行的反向代理將流量路由到我的 docker 容器。
我希望所有容器都使用主機網路,但我希望每個容器都監聽一個且僅一個私有 IP 地址。例如,每個容器都應該能夠監聽系結到自己私有 IP 地址的埠 80。
我的計劃是在公共 IP 上設定防火墻規則,以防止任何流量通過公共 Internet 進入或離開 VM。
首先,這可能嗎?如果是這樣,我該如何完成?
uj5u.com熱心網友回復:
這是可能的,您需要創建一個 macvlan 網路https://docs.docker.com/network/macvlan/ 并使用它們各自的 IP 地址將您的容器分配給它。
uj5u.com熱心網友回復:
Docker 可以做到這一點,開箱即用,無需特殊配置,也無需禁用 Docker 的網路層。
該docker run -p選項(以及等效的 Compose ports:)采用可選的主機 IP 地址。因此,在您的主機已經配置了多個 IP 地址的設定中,您只需要告訴 Docker 哪個與哪個容器一起使用:
docker run -d --name server1 \
-p 10.0.0.2:80:8000 \
image1
docker run -d --name server2 \
-p 10.0.0.3:80:8000 \
image2
我希望所有容器都使用主機網路......
如果這樣做,這將完全禁用 Docker 的網路層。每個容器都可以看到每個主機介面,這取決于容器內運行的特定應用程式是否系結到正確的應用程式,使用特定于應用程式的設定。我不推薦主機網路,除非在特殊的不尋常情況下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/406546.html
標籤:
