Docker环境下MongoDB 3.4升级/恢复至3.6后连接失败问题
MongoDB 3.6容器仅绑定127.0.0.1导致外部连接失败的解决办法
问题核心是MongoDB 3.6默认仅监听127.0.0.1,而3.4版本默认监听所有IP(0.0.0.0),这就导致容器内的MongoDB只接受本地请求,外部客户端(比如Studio3T、你的应用)无法连接。
解决步骤:
修改docker-compose.yml配置
在mongo-new服务中添加command参数,强制MongoDB绑定所有IP:version: '3.9' services: mongo: image: mongo:3.4 ports: - 27020:27017 volumes: - mongo-test:/data/db mongo-new: image: mongo:3.6 ports: - 27021:27017 volumes: - mongo-test-new:/data/db command: mongod --bind_ip_all # 添加这一行 volumes: mongo-test: mongo-test-new:重启容器
执行以下命令重新启动服务:docker-compose down && docker-compose up -d验证绑定状态
查看MongoDB 3.6容器的日志,确认输出中包含类似以下内容,说明已绑定所有IP:[initandlisten] waiting for connections on port 27017 [initandlisten] listening on all IPv4 addresses; port 27017
完成以上操作后,再用Studio3T或应用连接localhost:27021,应该就能正常建立连接了。
内容的提问来源于stack exchange,提问作者Ayudh
相关产品推荐
相关产品推荐

