来自公众的docker群访问服务

我有一个2个节点的docker群,运行4个服务。 问题是我想通过端口80通过公共IP公开这4个服务。我知道我可以使用子域和代理服务器为每个服务路由stream量,但是有没有其他解决scheme?

除非你介绍一个代理服务器,否则你的服务需要监听不同的端口。 你不能让他们都听80。

如果您的服务监听不同的端口,则无论服务容器位于哪个节点,它们都可以通过node1或node2的ip地址访问。 Swarm会在任一节点上解决你的容器问题。

例如,假设您有serviceA侦听端口82,并且它在node2上只有1个容器正在运行(1个任务)。 对node1:82或node2:82的任何请求都将被redirect到该容器。