我有一个使用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命令中更改连接端口,但是问题是相同的。
有帮助吗?
答案 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容器。