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
我遇到了一个奇怪的情况,我无法在我的 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