Docker实例连接到本地Mongo:无法绑定到地址

时间:2019-12-11 19:10:29

标签: mongodb docker ubuntu

我有一个使用MongoDB的dockerized(NodeJS)应用程序。 在我的本地环境(Mac OS)中,我可以使用以下命令运行容器

docker run -e MONGO_URL='mongodb://host.docker.internal:27017/mydb' -p 8070:8000 -p 27017:27017 -d myimage:8933f

它可以正常工作,它可以连接到本地MongoDB实例(未经过dockerized,这是标准安装)。

问题是当我尝试在Ubuntu服务器中运行相同的映像时。它还在端口27017上运行了MongoDB。 当我尝试使用相同的命令运行图像时,它输出:

  

docker:来自守护程序的错误响应:驱动程序外部编程失败   端点priceless_cartwright上的连接   (4a44248e01133f837144196943f6e034cb1a701a2bf783cde6e4996ea4889e4d):   启动Userland代理时出错:监听tcp 0.0.0.0:27017:绑定:地址   已经在使用

我不知道可能会发生什么。我试图用另一个端口(27117)的Docker启动一个MongoDB,并在docker run命令中更改连接端口,但是问题是相同的。

有帮助吗?

1 个答案:

答案 0 :(得分:0)

根据您的陈述,您已经有一个在端口27017上运行MongoDB的容器。

docker run -e MONGO_URL='mongodb://host.docker.internal:27017/mydb' -p 8070:8000 -p 27117:27017 -d myimage:8933f

这将不起作用,因为您试图将27117绑定到27017,但是该端口已经在监听您的mongoDB容器。