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

时间:2018-01-02 09:45:42

标签: mongodb docker

首先我拉了mongoDb图像

sudo docker pull mongo

并运行docker mongodb容器:

sudo docker run --name database -d -p 27017:27017 mongo --noauth --bind_ip=0.0.0.0

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

300b779a63a9        mongo               "docker-entrypoint..."   30 minutes ago      Up 30 minutes  

现在我尝试使用我的docker app连接到它

sudo docker run -v ~/Desktop/Template/universal_skillskill -it --link 300b779a63a9:300b779a63a9 alexa

和...我收到连接被拒绝的消息:(

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容器没有通信:(我做错了什么?有人聪明请帮助我:)

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果您使用这些额外的身份验证参数启动容器,请添加到之前的答案

- MONGO_INITDB_ROOT_USERNAME=user
- MONGO_INITDB_ROOT_PASSWORD=password

然后也使用 authSource=admin 参数 仅传递凭据是行不通的。

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

我遇到了这个问题。想,这可能会帮助某人。