首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从另一个容器应用作为docker镜像连接到mongodb

如何从另一个容器应用作为docker镜像连接到mongodb
EN

Stack Overflow用户
提问于 2018-01-02 17:45:42
回答 3查看 8.9K关注 0票数 7

首先,我拉取了mongoDb图像

代码语言:javascript
复制
sudo docker pull mongo

并运行docker mongodb容器:

代码语言:javascript
复制
sudo docker run --name database -d -p 27017:27017 mongo --noauth --bind_ip=0.0.0.0

我看到我的docker容器工作正常:

代码语言:javascript
复制
300b779a63a9        mongo               "docker-entrypoint..."   30 minutes ago      Up 30 minutes  

现在我正试着用我的docker应用程序连接到它

代码语言:javascript
复制
sudo docker run -v ~/Desktop/Template/universal_skillskill -it --link 300b779a63a9:300b779a63a9 alexa

还有..。我收到连接被拒绝的消息:(

代码语言:javascript
复制
Uncaught exception: MongoError: failed to connect to server [0.0.0:27017] on first connect [MongoError: connect ECONNREFUSED 0.0.0.0:27017]
MongoError: failed to connect to server [0.0.0:27017] on first connect [MongoError: connect ECONNREFUSED 0.0.0.0:27017]

我检查了一下,我的应用程序可以在本地安装mongodb,但它不能与docker mongoDb容器通信:(我做错了什么?能请聪明的人帮我一下吗?)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-02 17:55:12

您需要连接到300b779a63a9:27017,因为这是您为mongodb指定的链接名称。

票数 9
EN

Stack Overflow用户

发布于 2018-01-02 17:54:50

尝试使用容器database的名称进行连接,而不是使用IP。

票数 2
EN

Stack Overflow用户

发布于 2021-08-05 14:08:42

如果您使用这些附加参数启动容器以进行身份验证,则添加到前面的答案中

代码语言:javascript
复制
- MONGO_INITDB_ROOT_USERNAME=user
- MONGO_INITDB_ROOT_PASSWORD=password

然后使用authSource=admin参数,只传递凭证将不起作用。

mongodb://<user>:<password>@<container_name>:27017/$<DB>?authSource=admin

我曾经面对过这个问题。我想,这可能会帮助到一些人。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48058658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档