链接的Docker容器在EC2上的连接被拒绝

时间:2018-07-01 02:57:19

标签: node.js mongodb docker amazon-ec2 docker-compose

我在Amazon EC2上遇到此问题。我正在使用docker-compose设置此NodeJS + Redis + MongoDB应用程序,但是我的NodeJS容器无法与MongoDB容器连接。

运行docker logs会向我显示此错误:

  

(节点:5)UnhandledPromiseRejectionWarning:MongoNetworkError:失败   在第一次连接时连接到服务器[mongo:27017]   [MongoNetworkError:连接ECONNREFUSED 172.18.0.2:27017]

我没有在EC2上进行任何类型的特定网络设置。我不知道是否有必要。

这是我的 docker-compose

version: '3'
services:      
  app:
    build: .
    ports:
     - "8090:8090"
    container_name: app
    environment:
      - NODE_ENV=production
    links: 
      - redis:redis
      - mongo:mongo
    depends_on: 
      - redis
      - mongo

  mongo:
    image: mongo:latest
    container_name: mongo
    volumes:
      - ~/data:/data/db
    ports:
      - "27017:27017"

  redis:
    image: redis:latest
    ports:
      - "6379:6379"
    container_name: redis

database.js连接的mongo具有以下行:

mongoose.connect(`mongodb://mongo:27017/myapp`)

一个有趣的事实是Redis连接工作正常。

另一个重要的事情是我在计算机上运行了docker-compose,并且运行正常。也许是EC2上的问题?!​​

您能帮我解决这个问题吗?我必须更改docker-compose / Dockerfile还是在EC2上丢失某些内容?

0 个答案:

没有答案