我们正在使用docker swarm模式的docker容器部署风暴管理器和副本3.现在我们想通过浏览器访问管理员登录。
我们已经公开了可以访问风暴UI的端口8080。这工作正常。现在,storm还在端口8000上公开了他们的日志文件。由于我们只有一个nimbus和3个管理员,通过端口8000访问nimbus日志非常简单。
我们在使用docker swarm服务部署的主管面临的问题。而在docker swarm服务中,我们无法为不同的容器传递不同的端口。
目前,docker swarm服务在所有容器上公开相同的端口。 我们真正想要的是
port container
8011 supervisor1:8000
8012 supervisor2:8000
8013 supervisor3:8000
我们怎样才能做到这一点。
提前致谢。
答案 0 :(得分:3)
理想情况下,Swarm服务中的任务不应该是唯一的,也不应包含彼此唯一的数据。我知道有一些方法可以解决这个问题,但它总是感觉不理想或者说是黑客,特别是当你处理需要与任务一对一匹配的持久性数据时。
我建议您将三个副本分成三个单独的服务。我知道这听起来更像是工作,但在单个堆栈文件中,它可以让您灵活地处理它们上的各个端口和卷,因为它们是唯一的容器。