背景:我有一个在80 / 443端口上运行Apache2的Hetzner专用服务器,现在我添加了另一个也属于eth0接口的IP。我可以到达IP地址。我已经将Apache2配置为只侦听服务器的主IP,我想为使用新的IP。
我计划实现这个设置:https://docs.traefik.io/user-guide/cluster-docker-consul/ (如果正在工作的话,我计划添加更多的it)
然而,这似乎是行不通的。我把"ip":"<newip>"设为/etc/docker/daemon.json
Docker只是告诉我它不在乎(即使我在traefik.yml文件中指定了IP ):
~ # docker stack deploy -c traefik.yml traefik-consul
WARN[0000] ignoring IP-address (138.201.xx.xx:80:80/tcp) service will listen on '0.0.0.0'
WARN[0000] ignoring IP-address (138.201.xx.xx:443:443/tcp) service will listen on '0.0.0.0'此外,它只是把一些讨厌的DNAT-规则扔进了iptable,抵制了我的想法:
# iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 6 packets, 490 bytes)
pkts bytes target prot opt in out source destination
1474K 111M DOCKER-INGRESS all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
1198 72892 DOCKER all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
...
Chain DOCKER-INGRESS (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED tcp spt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED tcp spt:80一定有办法吗?还是这个场景不受支持?有什么想法吗?暗示?
发布于 2020-01-09 14:10:22
无法在主机上的特定IP上发布堆栈容器端口。在这方面有许多悬而未决的问题:
目前,当使用群集模式时,端口总是会发布在0.0.0.0主机地址上。
另外,您的链接(https://docs.traefik.io/user-guide/cluster-docker-consul/)是404。
https://unix.stackexchange.com/questions/530617
复制相似问题