为什么两个以serviceName为主机名的nodeJs服务/容器之间的API调用失败?

时间:2019-06-24 17:56:13

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

对不起,我是Docker的新手,我想在玩的同时学习基础知识,基本上我在两个nodeJs服务之间进行内部API调用时遇到了问题。

因此,我有两个作为服务运行的nodeJs服务器,具有两个服务的两个副本,我要实现的是从浏览器对节点服务器A进行API调用,然后服务器A对节点服务器B进行另一个API调用并将伪数据发送回服务器A,服务器A将其返回浏览器。

现在,当我在没有docker的情况下运行两台服务器时,上述各项都能按预期工作。

节点服务器A

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: nodeone:first
    deploy:
      replicas: 2
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "4000:3000"
    networks:
     - nw1
networks:
  nw1:

节点服务器B

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: nodetwo:latest
    deploy:
      replicas: 2
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "4080:3080"
    networks:
      - nw1
networks:
  nw1:
  

nw1是一个自定义网络。

我尝试使用以下配置从服务器A内部调用服务器B,但似乎无济于事。

在上述所有情况下,我都遇到了错误

错误:{错误:连接ECONNREFUSED 10.0.6.2:4080 在TCPConnectWrap.afterConnect上[作为完成](net.js:1174:14)    errno:“ ECONNREFUSED”,

0 个答案:

没有答案