docker-撰写 external_link mongo 网络不可达

docker-compose external_link mongo network not reachable

我遇到了一个奇怪的情况,我无法在我的 docker 组合中连接到我的 运行ning mongo 数据库。我的撰写文件:

version: '3'
services:
  app:
    image: myimage:latest
    ports:
     - "8080:8080"
    external_links:
     - myname:mongo
    environment:
     - MONGO_URL=mongodb://myname:27017/test

我找到了一些信息,但都没有解决我的问题。 IE。我试过了:

1)

创建自定义网络:

docker network create mongonet

然后用 --network mongonet 标志开始 mongo 并添加到撰写中:

networks:
  default: 
    external:
      name: mongonet

那里也没有。

我在 compose 上查看了我的 /etc/hosts 文件,它没有列出任何 DNS 条目。

如果我执行 docker inspect 并获取 mongo IP 并将其添加到我的 compose 中,那很好,而且效果很好。

我这样开始mongo:

docker run -d -p 27017:27017 -v ~/mongo_data:/data/db  mongo

我真的很困惑,因为我认为这是一种开箱即用的东西。奇怪的是我无法让它工作。我在内部 links 上找到了示例(对比 external_link),但这对我不起作用,因为我有很多服务想要 运行 像这样,但并非所有服务都应该运行同时。

我开始 docker 写作是这样的:

docker-compose up --force-recreate

我的版本是:

docker-compose version 1.17.1, build 6d101fb

Docker version 17.05.0-ce, build 89658be

我的问题:如何成功 link 一个 运行ning mongo 容器作为外部 link 到我的应用程序容器中,以便它们可以连接到它们?

我的dockerPS:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
5cf6e08d6fde        mongo               "docker-entrypoint..."   About an hour ago   Up About an hour    0.0.0.0:27017->27017/tcp   gallant_feynman

链接已弃用,请改用网络。

Notes:

If you’re using the version 2 or above file format, the externally-created containers must be connected to at least one of the same networks as the service which is linking to them. Links are a legacy option. We recommend using networks instead.

网络方式应该可以。我想你错过了一些作品。确保为 mongo 容器命名,并确保在撰写文件中将应用程序容器附加到网络:

docker network create mongonet

docker run -d -p 27017:27017 --network mongonet --name mongo -v ~/mongo_data:/data/db mongo

version: '3'
services:
  app:
    image: myimage:latest
    ports:
     - "8080:8080"
    environment:
     - MONGO_URL=mongodb://mongo:27017/test
    networks:
      - mongonet

networks:
  default: 
    external:
      name: mongonet