【问题标题】:How to have to different docker container of same service?如何拥有相同服务的不同 docker 容器?
【发布时间】:2018-05-04 11:17:41
【问题描述】:

我有 1 个节点服务。

我想在两个不同的容器上运行同一服务的两个不同实例。

我正在使用以下 docker 命令执行此操作,

docker run -p 9003:9003 --network ${NETWORK} --name database-service --restart always -m 1024M --memory-swap -1 -itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION}
docker run -p 9113:9113 --network ${NETWORK} --name database-service-poc --restart always -m 1024M --memory-swap -1 -itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION}

当我这样做时,我的第一个 docker 容器运行良好

但第二个容器以某种方式仅占用 9003,尽管我通过了 9113,请参见下面的屏幕截图:

仅供参考,

在节点服务中,我使用以下代码获取动态端口,即使用上述 docker 命令传递的端口

app.listen(app.get('port'), function () {
  logging.info("Application is running on port: %d in %s mode", app.get('port'), app.get('env'));
  logging.info("process.env.PORT ",process.env.PORT); //In both the docker container it prints 9003
});

【问题讨论】:

  • 你可能对 kubernetes 感兴趣。

标签: node.js docker docker-compose dockerfile docker-machine


【解决方案1】:

检查 docker swarm https://docs.docker.com/engine/swarm/。 使用 swarm,您可以使用参数--replicas 2 运行服务。您的服务将创建两个容器并管理端口和其他人的访问

【讨论】:

  • 这并没有解决我的问题。我想在两个不同的端口上运行两个不同的容器,然后对它们进行负载均衡
  • 你写过你想要两个相同服务的实例。服务是 swarm 的一个“特性”。通过docker run 运行容器不会创建service。如果两个容器实际上是相同的,那么您可以运行 swarm,使用 docker service create 为它们创建服务,然后 docker 将为您完成负载平衡 - 就像 @Kilian 写的那样。
  • @Izydorr :我想将功能区用于负载均衡器。 .我们有 Spring-Boot Api-Gateway 可以将请求转发到这些容器中的任何一个。现在正如我在问题中提到的那样,两个容器都使用 9003 端口,而不是使用 9003 和其他 9113 的容器我正面临问题跨度>
【解决方案2】:

看起来端口转发工作得很好,但在您的映像中您只公开端口 9003。我对您所服务的东西一无所知,但您应该在 Dockerfile 中同时拥有 EXPOSE 9003EXPOSE 9113如果您的服务真的在这两个端口上侦听或像这样进行端口转发:

docker run -p 9003:9003 --network ${NETWORK} --name database-service --restart always -m 1024M --memory-swap -1 -itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION}
docker run -p 9113:9003 --network ${NETWORK} --name database-service-poc --restart always -m 1024M --memory-swap -1 -itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION}

如果它在两个容器的同一个端口上提供相同的服务,并且您只想使用不同的端口进行负载平衡。

【讨论】:

    猜你喜欢
    • 2015-08-13
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多