背景
有如下的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"}]})