docker-compose external_link mongo network not reachable
我有一个奇怪的情况,我无法连接到我的泊坞窗撰写我正在运行的mongo数据库。 我的撰写文件:
version: '3' services: app: image: myimage:latest ports: - "8080:8080" external_links: - myname:mongo environment: - MONGO_URL=mongodb://myname:27017/test
我发现一些信息都没有解决我的问题。 即我试过了:
1)
创build一个自定义networking:
docker network create mongonet
然后用--network mongonet
标志启动mongo并添加组合:
networks: default: external: name: mongonet
也没有什么。
我查看了我撰写的/ etc / hosts文件,并没有列出任何DNS条目。
如果我做一个docker inspect
并抓住mongo知识产权,并将其添加到我的撰写,这是好的,像一个魅力的作品。
我开始像这样:
docker run -d -p 27017:27017 -v ~/mongo_data:/data/db mongo
我真的很困惑,因为我相信这是一个开箱即用的东西。 奇怪,我不能使它的工作。 我已经find了内部链接的示例(vs external_link),但这不适合我,因为我有许多服务,我希望像这样运行,而不是所有的服务都应该同时运行。
我开始我的docker撰写这样的:
docker-compose up --force-recreate
我的版本是:
docker-compose version 1.17.1, build 6d101fb
Docker version 17.05.0-ce, build 89658be
我的问题:我如何成功地链接一个正在运行的mongo容器作为外部链接到我的应用程序容器中,以便它们可以连接到它们?
我的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
链接已弃用,请使用networking。
笔记:
如果您使用的是第2版或更高版本的文件格式,外部创build的容器必须至less连接到与链接到它们的服务相同的networking。 链接是一个遗留选项。 我们build议使用networking。
networking的方式应该工作。 我想你错过了一些片断。 确保给mongo容器一个名称,并确保将app容器附加到撰写文件中的networking上:
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