【问题标题】:How to assign different port to container replicas in docker swarm如何为 docker swarm 中的容器副本分配不同的端口
【发布时间】:2018-02-21 12:37:07
【问题描述】:

我们正在以 docker swarm 模式和副本 3 部署带有 docker 容器的storm supervisor。现在我们想通过浏览器访问supervisor 登录。

我们已经暴露了可以访问 Storm UI 的端口 8080。这工作正常。现在storm还在8000端口公开了他们的日志文件。由于我们只有一个nimbus和3个supervisor,所以通过8000端口访问nimbus日志非常容易。

我们在使用 docker swarm 服务部署的主管上遇到的问题。而在 docker swarm 服务中,我们不能为不同的容器传递不同的端口。

目前 docker swarm 服务在所有容器上公开相同的端口。 我们真正想要的是这样的

port    container
8011    supervisor1:8000
8012    supervisor2:8000
8013    supervisor3:8000

我们怎样才能做到这一点。

提前致谢。

【问题讨论】:

  • 您是否尝试在配置文件中将其作为“tasks.supervisor:8000”访问?这将解析服务的 3 个 IP 中的每一个。

标签: docker docker-compose dockerfile docker-swarm docker-machine


【解决方案1】:

理想情况下,Swarm 服务中的任务不应该是唯一的或包含彼此唯一的数据。我知道有几种方法可以解决这个问题,但它总是让人觉得不理想或不合时宜,尤其是当您处理需要与任务一对一匹配的持久数据量时。

我建议您将三个副本拆分为三个独立的服务。我知道这听起来需要做更多的工作,但是在单个堆栈文件中,由于它们是独特的容器,因此您可以灵活地处理它们上的各个端口和卷。

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2021-01-23
    • 1970-01-01
    • 2019-06-22
    相关资源
    最近更新 更多