我正在使用docker swarm创建docker service
。我希望每个docker服务在每个swarm节点上都有自己的特定IP地址。所以我的实例有多个网络接口(eth1,eth2和eth3),每个接口都有自己不同的IP地址。我希望能够在每个节点上创建连接到单个父网络接口的docker overlay网络,以便每个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服务,其中每个容器都有一个外部可路由的IP地址。