在两个docker容器之间与HTTP通信(Vue.js到Node.js)

时间:2018-05-31 09:16:59

标签: node.js docker vue.js docker-compose

我有三个容器:

  • front(vuejs)
  • server(nodejs)
  • mongo(mongodb)

服务器< - >之间的通信mongo还可以,但正面之间的沟通 - >服务器是KO(服务器的前端http调用无法到达)。

这里是我的docker-compose:

version: "3.3"

services:
  server:
    build:
      context: ../server
    command: nodemon ../server/bin/www
    volumes:
      - ../server:/server
    ports:
      - "3000:3000"
    networks:
      - frontend
      - backend
    depends_on:
      - mongo
  front:
    build:
      context: ../front
    command: npm run dev
    volumes:
      - ../front:/app
    ports:
      - "8081:8081"
    networks:
      - frontend
    depends_on:
      - server
  mongo:
    image: mongo:3.6.5
    ports:
      - "27017:27017"
    networks:
      - backend
    environment:
      MONGO_INITDB_DATABASE: mongo-dev
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: password
    command: mongod

networks:
  frontend:
  backend:

运行docker-compose up是正确的:创建了Mongo +服务器正在运行+正在运行。

我可以从我的浏览器访问它们(http://localhost:3000代表服务器+ http://localhost:8081作为前端)但我的前端无法通过

获取简单的http GET到我的服务器
  

的http:// 服务器:3000 / myGetRoute

注意:可以使用

从我的浏览器访问此路由
  

的http:// 本地主机:3000 / myGetRoute

我的前端容器中的

ping服务器就可以了。

前面的沟通 - >服务器不可能。有什么想法吗?

编辑:我的前台服务正在运行:http:// 0.0.0.0 :8081)

1 个答案:

答案 0 :(得分:-1)

您可能需要尝试链接而不是 depends_on 。 另请参阅Difference between links and depends_on in docker_compose.yml以进一步详细说明。