gpt4 book ai didi

node.js - 我无法通过名称连接到我的 mongo docker 容器

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:04 24 4
gpt4 key购买 nike

我对 docker 还很陌生,但在让 Node 应用程序连接到在单独容器上运行的 mongo 数据库时遇到一些问题。

我正在使用official mongo image

我使用以下方式运行它:

docker run --name some-mongo --network-alias some-mongo -d mongo

它默认在端口 27017 上运行。我可以使用 mongo shell 连接到它:

mongo --host mongodb://172.17.0.2:27017

但我无法通过名称连接到它

mongo --host mongodb://some-mongo:27017

MongoDB shell version: 3.2.19
connecting to: mongodb://some-mongo:27017/test
2018-05-07T17:23:20.813-0400 I NETWORK [thread1] getaddrinfo("some-mongo") failed: Name or service not known
2018-05-07T17:23:20.813-0400 E QUERY [thread1] Error: couldn't initialize connection to host some-mongo, address is invalid :
connect@src/mongo/shell/mongo.js:223:14
@(connect):1:6
exception: connect failed

相反,我收到一条关于如何无法连接到 mongo 主机的错误消息:

我正在尝试一些 docker-compose 教程,但要么它们太简单,要么它们似乎不适合我。我只想将自定义 Node 应用程序(不是官方 Node )连接到 mongodb 和其他一些依赖项。

最佳答案

您的方法不是更改主机的系统配置,因此 mongo 服务将无法像这样可用。同意@unm4sk,您应该将应用程序的服务组合成一个组合文件,如下所示:

version: '2'
services:
mongo:
image: mongo
expose:
- "27017"
[...]
service_utilizing_mongo:
[...]
links:
- mongo:mongo

然后,您的 service_utilizing_mongo 将有一个 DNS 条目,使该服务能够通过默认 27017 端口上的别名 mongo 访问您的 mongo 服务。

关于node.js - 我无法通过名称连接到我的 mongo docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50222672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com