我正在开发 Rest API 并尝试连接到 MongoDb Docker 容器。我在一台 Windows 10 计算机上,并设法使用 Bash 和 Oracle Virtualbox VM 启动并运行 Docker。我在 Bash 中运行了 $ docker run --rm --name mongo -d -p 27017:27017 -v mongodbdata:/data/db mongo:4.0.4 。
我运行了 dockerspect ,端口暴露如下:
"NetworkMode": "default",
"PortBindings": {
"27017/tcp": [
{
"HostIp": "",
"HostPort": "27017
在网络设置中我有
NetworkSettings": {
"Bridge": "",
"SandboxID": "f7d140fc6f524c8e854ced371c19ff4661f899bc96a42f7e817b301a9a514887",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"27017/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "27017"
}
]
},
"SandboxKey": "/var/run/docker/netns/f7d140fc6f52",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "fafa4bd9c05743874fa6783fce5b40c74cea0032cf51f35182efdc5eafd3156e",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2"
我正在使用 c# Visual Studio Code 并尝试使用连接 mongodb://locahost:27017 连接到 MongoDb 扩展,但我收到 ERRCONN REFUSED。我尝试过使用 Mongodb:// localhost、127.0.0.1、172.17.0.2 和 0.0.0.0 的所有组合,但没有运气。另外,当我运行 API 时,我收到“端口 27017”主动拒绝连接”。
我担心 Windows10、Bash、VS Code 和 Docker 之间存在某种冲突,它们无法相互通信。
任何帮助将不胜感激。
查看这里的一些其他答案,我发现如果您运行“docker-machine ls”,您将获得运行 docker 的虚拟机的 IP,这就是使用 VirtualBox 时需要使用的 IP。立即连接到 Mongo。 干杯!
我能够使用以下字符串从主机连接到容器:
mongodb://127.0.0.1:27017/?authSource=admin&readPreference=primaryPreferred&retryWrites=false&directConnection=true
directConnection=true 对我有帮助。希望这对您有帮助。