首先默认已经安装过docker desktop,没有安装过的可以参考这篇博客
1. docker拉取mongodb镜像
!注:一定要给镜像分配数据卷,要不然就会在启动的时候启动到一半停下来中止。
首先创建一个文件名为docker-compose.yml的文件,内容如下:
version: '3.8'
services:
mongo1:
image: mongo:latest
container_name: mongo1
ports:
- 27017:27017
volumes:
- mongo1_data:/data/db
command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
mongo2:
image: mongo:latest
container_name: mongo2
ports:
- 27018:27017
volumes:
- mongo2_data:/data/db
command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
mongo3:
image: mongo:latest
container_name: mongo3
ports:
- 27019:27017
volumes:
- mongo3_data:/data/db
command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
volumes:
mongo1_data:
mongo2_data:
mongo3_data:
然后执行下面的命令生成镜像并启动容器:
docker-compose up -d
2. 连接mongo1镜像的mongosh
docker exec -it mongo1 mongo
3. 在mongosh中初始化副本集
在mongosh中输入如下命令:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "mongo1:27017" },
{ _id: 1, host: "mongo2:27017" },
{ _id: 2, host: "mongo3:27017" }
]
}
)
输出:
连接成功以后打开Docker Desktop就能看到连接成功以后的mongodb副本集了。