MacOS下MongoDB Docker容器连接失败问题求助
解决MongoDB Docker容器连接失败问题
问题根源
你运行容器时指定了bash命令,这会覆盖Dockerfile中定义的CMD ["mongod", "--bind_ip_all"],导致MongoDB服务根本没启动,自然无法连接。
解决办法
方法1:按Dockerfile配置正常启动容器
使用以下命令启动容器(不要追加bash):
docker run -it -p 27017:27017 --rm --name containername imagename
容器启动后,打开新终端窗口,执行以下命令进入容器并连接MongoDB(需带上预设的用户名密码):
docker exec -it containername bash # 进入容器后执行连接命令 mongo -u admin -p admin
方法2:启动容器时进入bash并手动启动MongoDB
如果必须在启动容器时直接进入bash,可在容器内手动启动服务:
- 启动容器:
docker run -it -p 27017:27017 --rm --name containername imagename bash
- 在容器内启动MongoDB服务(后台运行):
mongod --bind_ip_all &
- 等待几秒服务启动后,执行连接命令:
mongo -u admin -p admin
补充说明
因为你在Dockerfile中设置了MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD,所以连接时必须提供用户名和密码,否则也会连接失败。
内容的提问来源于stack exchange,提问作者vidola
相关产品推荐
相关产品推荐

