代码之家  ›  专栏  ›  技术社区  ›  Héctor

外部链接在Docker Compose中不工作

  •  0
  • Héctor  · 技术社区  · 6 年前

    我有两个 docker-compose.yml 文件夹。在第一个实例中,我运行了一个MongoDB实例:

    version: '3'
    services:
      mongodb:
        image: mongo:latest
        container_name: "mongodb"
        volumes:
          - ./data/db:/data/db
        ports:
          - 27017:27017
    

    在第二个示例中,我运行我的Web应用程序,并希望将其与MongoDB容器链接:

    version: '3'
    services:
      webapp:
        build:
          context: .
        external_links:
          - mongodb
        ports:
          - 8080:8080
    

    但是,当我运行webapp时,我会得到一个连接错误。我正在连接此URI:

    const DB_URI = 'mongodb://mongodb:27017/mydb';
    

    但我得到 MongoNetworkError . 我错过了什么?

    2 回复  |  直到 6 年前
        1
  •  1
  •   JPG    6 年前

    我建议您在同一个docker compose文件中使用这两个服务并替换 external_links 具有 links

    version: '3'
    services:
      mongodb:
        image: mongo:latest
        container_name: "mongodb"
        volumes:
          - ./data/db:/data/db
        ports:
          - 27017:27017
      webapp:
        build:
          context: .
        links:
          - mongodb
        depends_on:
          - mongodb
        ports:
          - 8080:8080


    我如何确保MongoDB在webapp启动之前启动并运行?

    阿飞 链接 会处理好情况的。

    你可以使用 depends_on

        2
  •  0
  •   Héctor    6 年前

    解决了的。无法访问主机,因为它们位于不同的网络中。创建网络( https://docs.docker.com/compose/networking/ )在那个网络中运行这两个服务解决了这个问题。