【发布时间】:2016-10-31 20:55:31
【问题描述】:
我有一个 docker swarm 有 2 个节点,运行 4 个服务。 问题是我想通过端口 80 上的公共 IP 公开这 4 个服务。我知道我可以使用子域和代理服务器来路由每个服务的流量,但是还有其他解决方案吗?
【问题讨论】:
标签: docker docker-swarm
我有一个 docker swarm 有 2 个节点,运行 4 个服务。 问题是我想通过端口 80 上的公共 IP 公开这 4 个服务。我知道我可以使用子域和代理服务器来路由每个服务的流量,但是还有其他解决方案吗?
【问题讨论】:
标签: docker docker-swarm
除非您引入代理服务器,否则您的服务将需要侦听不同的端口。你不能让他们都听 80 的。
如果你的服务监听不同的端口,无论服务容器在哪个节点上,它们都可以通过 node1 或 node2 的 ip 地址访问。 Swarm 将 dns 解析任一节点上的容器。
例如,假设您有 serviceA 监听端口 82,并且它只有 1 个容器在 node2 上运行(1 个任务)。对 node1:82 或 node2:82 的任何请求都将被重定向到该容器。
【讨论】: