无法在Windows主机上的docker中连接到MongoDB

我有一个类似的问题在Docker中无法连接到MongoDB 。

  • Windows主机
  • Docker工具箱,所以它使用的是VirtualBox

我用docker run --name mongo2 -p 127.0.0.1:27017:27017 mongo来创buildMongoDB容器。

当我连接到容器( docker -it mongo2 /bin/bash )时,我可以通过mongo localhost:27017连接到Mongo。

我也检查了netstat ,Mongo正在监听0.0.0.0:27017 ,不仅是localhost。

不过,我无法从Windows主机连接到容器。 我什至试图禁用Windows防火墙,仍然没有:

 rs@ausus:~$ telnet localhost 27017 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused 

有任何想法吗?

就像https://hub.docker.com/_/mongo/上的Docker文档所述:“这意味着不能将数据目录映射到主机的情况下运行MongoDB容器”

最后我做了一个.bat脚本,它定义了我的Win10 IP并将其映射到一个variables。 我直接在我的Win10上运行MongoDB,然后用IP访问它。 这不是我想要的,但它的工作原理。

startup.bat:

 for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do set ip=%%b set DOCKERHOST=%ip:~1% docker-compose up 

docker-compose.yml:

 environment: - MONGO_HOST=${DOCKERHOST}