首先我拉了mongoDb图像
sudo docker pull mongo
运行docker mongodb container:
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应用程序连接它
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容器通信:(我做错了什么?聪明的人能帮我一下吗:)
4条答案
按热度按时间ecfsfe2w1#
您需要连接到
300b779a63a9:27017
,因为这是您为mongodb提供的链接名称。anauzrmj2#
如果您使用这些附加参数启动容器以进行身份验证,则添加到以前的答案中
然后使用
authSource=admin
参数以及只传递凭证将不起作用。mongodb://<user>:<password>@<container_name>:27017/$<DB>?authSource=admin
我面对这个问题。我想,这也许能帮助到别人。
lkaoscv73#
请尝试使用容器名称
database
而不是IP连接。xzv2uavs4#
您应该使用容器的IP地址(
mongodb://<mongodb_container_ip>:27017/
)。您可以通过运行以下命令来检查MongoDB容器的主机名:在本例中,m1是MongoDB容器的名称。
来源:ChatGPT