Docker swarm容器副本正在运行,但无法在浏览器中或通过curl命中

时间:2019-09-02 09:28:20

标签: docker docker-compose docker-swarm

在遵循docker文档并尝试使用链接-> https://docs.docker.com/get-started/part3/

创建节点的副本

我已经按照文档中提到的步骤进行操作,但是无法在curl或浏览器上获得预期的应用程序响应。

docker分解文件如下所示:

version: "3"
services:
  web:
    image: vigneshnithin23/restaurant:latest
    deploy:
      replicas: 2
      placement:
          constraints: [node.role == manager]
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "8090:8090"
    networks:
      - webnet
networks:
  webnet:

根据文档,他们能够卷曲URL。而无法做到这一点。

我有两个IP地址,并使用--advertise-addr初始化了docker swarm-第一个wlan地址

如果我在单个容器上运行相同的代码,就能获得所需的结果。

我在下面的链接中浏览了该问题,该问题早些时候被问到,但没有正确的答案

Website available in standalone container, not in swarm

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

您需要问问自己,您的SpringBoot应用程序是否能够   在每秒CPU使用率50%的受限环境中运行   和50M。

当您将其作为单个容器运行时(启动需要9毫秒),它在不受限制的环境中运行,而在您的堆栈文件中,您对其进行了限制。因此,当您启动服务时,需要更长的时间进行预热并开始使用。

这里是同一应用程序的屏幕快照,只需将副本集更改为“ 1”,然后将内存增加到100M,大约需要900毫秒才能为该应用程序提供服务并提供响应。 enter image description here

因此请尝试针对资源限制对这些设置进行微调。