1、拉取镜像
docker pull docker.io/mongo:5.0

2、开启容器
使用宿主机器27017端口的作为主库
docker run --privileged=true -p 27017:27017 -v /docker_data/mongodb1:/data/db -d --name mongo-db1 mongo:5.0 --replSet "rs0" --bind_ip_all
使用宿主机器27018端口的作为从库
docker run --privileged=true -p 27018:27017 -v /docker_data/mongodb2:/data/db -d --name mongo-db2 mongo:5.0 --replSet "rs0" --bind_ip_all

3、开放从库端口
因为主库要连接从库,所以需要开放从库端口
即笔者这里要开放 27018 端口
firewall-cmd --zone=public --add-port=27018/tcp --permanent
刷新防火墙
firewall-cmd --reload

4、配置主从文件
先进入主节点 mongodb 容器,然后进行配置
docker exec -it mongo-db1 bash
进入bin目录
cd /usr/bin
进入mongodb
./mongo

初始化集群
这里的 192.168.0.117 是宿主机器 ip 地址,也可以是 docker0 网卡的 ip 地址
笔者这里使用宿主机器的 ip 地址
rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "192.168.0.117:27017" },
{ _id: 1, host: "192.168.0.117:27018" },
]
});

主从搭建完成
查看状态
rs.status();

至此完
本文详细介绍了如何使用Docker创建MongoDB的主从复制集群。首先通过`docker pull`拉取镜像,然后分别启动两个容器,一个作为主库,一个作为从库,并映射不同端口。接着开放从库端口,允许主库连接。进入主库容器,执行初始化集群的命令,指定主从节点的IP和端口。最后,检查集群状态确认主从搭建成功。
7905

被折叠的 条评论
为什么被折叠?



