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();
至此完