我有一个类似的问题在Docker中无法连接到MongoDB 。
我用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}