容器部署MongoDB

本文主要介绍如何部署mongodb。
Mongo官网:https://www.mongodb.com/docs/manual/
Mongo镜像说明官网:https://github.com/docker-library/mongo
Mongo镜像地址官网:https://hub.docker.com/_/mongo/?tab=tags
建议你有自己的nexus,解决各种网络加速问题,参考:Docker部署Nexusnexus配置的一些实践

1.安装和部署

1.1 概述

注意,账号最好不要带破折号,最好使用下划线

1
2
3
4
5
docker pull mongo:7.0.8-jammy
docker volume create vo-mongo-data
docker volume create vo-mongo-configdb

docker run --name qa-mongo --net=host -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v vo-mongo-data:/data/db -v vo-mongo-configdb:/data/configdb --restart=always --privileged=true -dit mongo:7.0.8-jammy mongod --replSet rs0

开始设置认证:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker exec -it qa-mongo mongosh admin
#初始化副本
rs.initiate(
{
_id : "rs0",
members: [
{ _id : 0, host : "你的IP:27017" },
]
}
)
#退出,重新进入
exit
#创建用户
db.createUser({ user: 'mongo_admin', pwd: '你的管理员密码', roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "root", db: "admin" } ] });
exit

1.2 添加用户

1
2
3
4
5
6
docker exec -it qa-mongo mongo admin
#使用管理员账号登录
db.auth("mongo_admin","你的管理员密码");
#切换到你的库,如不存在,会自动创建
use 你的库
db.createUser({ user: '你的账号', pwd: '你的密码', roles: [{ role: "readWrite", db: "你的库" }] });

1.3 测试

插入一条数据看看

1
db.你的库.insert({"name":"tutorials point"})

1.4 副本设置方式

参考官网:https://www.mongodb.com/docs/manual/tutorial/deploy-replica-set-with-keyfile-access-control/