首先我拉了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容器没有通信:(我做错了什么?有人聪明请帮助我:)
答案 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
我遇到了这个问题。想,这可能会帮助某人。