我正在docker service
用 docker swarm 创建。我希望我的每个 docker 服务在每个 swarm 节点上都有自己的特定 IP 地址。所以我的实例有多个网络接口(eth1、eth2 和 eth3),每个接口都有自己不同的 IP 地址。我希望能够创建连接到每个节点上的单个父网络接口的 docker 覆盖网络,以便每个 docker 服务在每个节点上都有自己的 IP 地址。
这是我尝试创建这样的网络和与之配套的服务:
docker network create -d overlay \
-o parent=eth2 \
nginx1-net
docker service create \
--mode global \
--name nginx1 \
-p 30000:80/tcp \
--network nginx1-net \
nginx
问题是这个覆盖网络nginx1-net
只会出现在我创建它的管理节点上,不会出现在任何其他节点上。(我怀疑这是因为该服务默认会附加到 docker0 和 eth0 上)
这会导致我可以从任何接口(eth1、eth2 和 eth3)上的任何 IP 地址访问此服务,而不仅仅是我定义的 eth2 接口。
如何将覆盖网络和 docker 服务绑定到单个网络接口?
注意:我的总体目标是创建 docker 服务,其中每个容器都有一个可路由的外部 IP 地址。