docker启动mongodb之后无法连接

1,380 阅读1分钟

背景

有如下的Dockerfile

FROM mongo:4.4.6

# 暴露端口
EXPOSE 27017

# 持久化
VOLUME ./mongodb/data:/data/db
VOLUME ./mongodb/logs:/data/logs

CMD mongod --bind_ip_all

使用上面的配置构建镜像

docker build -t mongodb-server .

构建完之后启动容器

docker run -d -p 27017:27017 镜像ID

原则上启动容器之后就可以连接数据数据库,我使用的Robo连接工具。但是事与愿违,报错了

错误提示: Error: Establish connection failed. Authentication failed.

原因

查阅了相关的文章,说是mongodb有一个默认的数据库admin数据库,没有用户是没法连接的

blog.csdn.net/KingOfOnePi…
stackoverflow.com/questions/3…

解决办法

给数据库创建一个超级管理员

# 进入到后端的shell中
docker exec -it 容器ID mongo
use admin
db.createUser({user: "root", pwd: "", roles:[{role: "root", db:"admin"}]})