docker部署MongoDB集群
参考链接
1.创建mongo.conf配置文件
net:
port: 27017
bindIp: 0.0.0.0
systemLog:
logAppend: true
security:
keyFile: /data/configdb/mongodbKeyfile.key
authorization: "enabled"
replication:
replSetName: "rs"
2.在宿主机创建数据文件和目录
#!/usr/bin
mkdir -p /opt/mongodb/{/m0/data,/m0/conf,/m0/logs,/m1/conf,/m1/logs,/m2/data,/m2/data,/m2/conf,/m2/logs}
openssl rand -base64 756 > /opt/mongodb/mongodbKeyfile.key
chmod 400 /opt/mongodb/mongodbKeyfile.key
cp /opt/mongodb/mongodbKeyfile.key /opt/mongodb/m0/conf
cp /opt/mongodb/mongodbKeyfile.key /opt/mongodb/m1/conf
cp /opt/mongodb/mongodbKeyfile.key /opt/mongodb/m2/conf
cp mongo.conf /opt/mongodb/m0/conf
cp mongo.conf /opt/mongodb/m1/conf
cp mongo.conf /opt/mongodb/m2/conf
3.编写docker-compose.yml文件
version: '3.8'
services:
mongnoM0:
image: mongo:latest
container_name: mognoM0
ports:
- "37017:27017"
volumes:
- /opt/mongodb/m0/data:/data/db
- /opt/mongodb/m0/conf:/data/configdb
- /opt/mongodb/m0/logs:/data/log
command: ["--replSet", "rs"]
mongnoM1:
image: mongo:latest
container_name: mognoM1
ports:
- "47017:27017"
volumes:
- /opt/mongodb/m1/data:/data/db
- /opt/mongodb/m1/conf:/data/configdb
- /opt/mongodb/m1/logs:/data/log
command: ["--replSet", "rs"]
mongnoM2:
image: mongo:latest
container_name: mognoM2
ports:
- "57017:27017"
volumes:
- /opt/mongodb/m2/data:/data/db
- /opt/mongodb/m2/conf:/data/configdb
- /opt/mongodb/m2/logs:/data/log
command: ["--replSet", "rs"]
4.启动容器 && 进入容器 配置副本集
docker-compose up -d
docker exec -it mognoM0 /bin/bash
mongosh
var config={
_id:"rs",
members:[
{_id:0,host:"宿主机IP:37017"},
{_id:1,host:"宿主机IP:47017"},
{_id:2,host:"宿主机IP:57017"}
]};
rs.initiate(config)
rs.conf()
5.插入数据测试
use admin
db.createUser({
user: "jianjian",
pwd: "jianjian",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
})
use jianjian
db.user.insertOne({
name: "jianjian",
age: 25,
email: "706978182@qq.com",
createdAt: new Date()
})
db.user.find().pretty()
6.通过可视化工具连接数据库查看
