docker安装mongodb副本集
时间: 2023-11-06 08:02:28 浏览: 200
要在Docker上安装MongoDB副本集,你可以按照以下步骤进行操作:
1. 首先,创建一个网络以便于容器之间的通信,可以使用以下命令创建网络:
```
docker network create mongo-cluster
```
2. 然后,创建一个配置服务器的容器。使用以下命令创建容器:
```
docker run --name config-server -d \
--net=mongo-cluster \
--privileged=true \
-p 20011:20011 \
-v /docker/mongo-cluster/config-server:/data/db \
mongo:latest \
--configsvr --replSet rs_config_server --bind_ip_all
```
3. 接下来,创建三个数据节点的容器。使用以下命令创建容器:
```
docker run --name data-node1 -d \
--net=mongo-cluster \
--privileged=true \
-p 20021:20021 \
-v /docker/mongo-cluster/data-node1:/data/db \
mongo:latest \
--shardsvr --replSet rs_data_node --bind_ip_all
docker run --name data-node2 -d \
--net=mongo-cluster \
--privileged=true \
-p 20022:20022 \
-v /docker/mongo-cluster/data-node2:/data/db \
mongo:latest \
--shardsvr --replSet rs_data_node --bind_ip_all
docker run --name data-node3 -d \
--net=mongo-cluster \
--privileged=true \
-p 20023:20023 \
-v /docker/mongo-cluster/data-node3:/data/db \
mongo:latest \
--shardsvr --replSet rs_data_node --bind_ip_all
```
4. 运行以下命令以配置和启动副本集:
```
docker exec -it config-server mongo --port 20011
rs.initiate(
{
_id: "rs_config_server",
configsvr: true,
members: [
{ _id : 0, host : "config-server:20011" }
]
}
)
```
```
docker exec -it data-node1 mongo --port 20021
rs.initiate(
{
_id : "rs_data_node",
members: [
{ _id : 0, host : "data-node1:20021" }
]
}
)
```
```
docker exec -it data-node2 mongo --port 20022
rs.add("data-node1:20021")
```
```
docker exec -it data-node3 mongo --port 20023
rs.add("data-node1:20021")
```
5. 最后,创建一个mongos路由服务器的容器。使用以下命令创建容器:
```
docker run --name mongos -d \
--net=mongo-cluster \
--privileged=true \
-p 27017:27017 \
-v /docker/mongo-cluster/mongos:/data/db \
mongo:latest \
--configdb rs_config_server/config-server:20011 --bind_ip_all
```
现在你已经成功安装了MongoDB副本集。你可以使用以下命令连接到mongos服务器并进行操作:
```
docker exec -it mongos mongo --port 27017
```
阅读全文