Docker/Rancher部署MongoDb 7.x版本,单副本集群模式,只为支持事务。多节点集群不建议使用副本模式部署,请用分片模式部署集群。该教程理论支持5.x以上版本。全网最全最详细教程,无坑
# 创建密钥文件存储目录
mkdir -p /data/mongo/config
# 生成密钥
openssl rand -base64 756 > /data/mongo/config/mongo.key
# 设置密钥文件权限和用户组(一定要设置)
chmod 400 /data/mongo/config/mongo.key
sudo chown 999:999 /data/mongo/config/mongo.key
docker run -d --restart=always -p 30017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=passwd -e TZ=Asia/Shanghai -v /data/mongo/db:/data/db -v /data/mongo/config:/data/config mongo:7.0.4 mongod --port 27017 --replSet mongo --dbpath /data/db --auth --keyFile /data/config/mongo.key
MONGO_INITDB_ROOT_USERNAME
账号
MONGO_INITDB_ROOT_PASSWORD
密码
-v /data/mongo/db:/data/db -v /data/mongo/config:/data/config
挂载数据和配置文件
mongo:7.0.4
指定使用7.0.4版本,可以直接用mongo:7
版本(默认最新版),也可以改成5或6版本
mongod --port 27017 --replSet mongo --dbpath /data/db --auth --keyFile /data/config/mongo.key
设置容器端口27017
,集群名称mongo
,数据目录--dbpath /data/db
,开启账号/权限验证--auth
,密钥文件--keyFile /data/config/mongo.key
进入容器控制台后输入以下命令
# 连接集群
mongosh admin
# 登录账号密码,部署时环境变量配置的账号密码
db.auth('root','passwd')
# 集群初始化,如果是公网,一定要公网ip。如{_id:0,host:'123.123.123.123:30017'}
rs.initiate({
_id:"mongo",
members:[
{_id:0,host:'公网ip:映射端口'}
]
})
# 查看配置
rs.conf()
# 创建一个测试库,并插入一条数据
# 切换到库
use test
# 插入一条数据
db.test.insert({"name":"test"})
我这里使用Navicat
客户端连接,类型选择副本集群模式,验证数据库是admin
可以看到刚刚插入的数据
和docker一样,填写完配置,启动成功后,进命令行初始化集群