docker快速搭建mongo复制集

1.启动复制集

创建网络:
docker network create mongo-net
以副本方式启动三个mongo示例 复制集名称一定要相同
docker run  --name mongo-server-28017 --net mongo-net -p 28017:27017 -v /mongodb/data1:/data/db -e mongo_initdb_root_username=root -e mongo_initdb_root_password=root -d mongo:4.4.10 --replSet rs0 
docker run  --name mongo-server-28018 --net mongo-net -p 28018:27017 -v /mongodb/data2:/data/db -e mongo_initdb_root_username=root -e mongo_initdb_root_password=root -d mongo:4.4.10 --replSet rs0  
docker run  --name mongo-server-28019 --net mongo-net -p 28019:27017 -v /mongodb/data3:/data/db -e mongo_initdb_root_username=root -e mongo_initdb_root_password=root -d mongo:4.4.10 --replSet rs0 

上述命令中:

  • 创建network不是必须的,主要是方便在容器中使用彼此的名称可以访问
  • –name mongo-server-28017 指定容器名称
  • –net mongo-net 指定同一个网络内
  • -p 28017:27017 物理机端口:容器示例端口
  • -v /mongodb/data1:/data/db 挂载目录
  • -e mongo_initdb_root_username=root -e mongo_initdb_root_password=root 指定初始密码
  • –replSet rs0 指定复制集名称(同一个复制集的名称必须相同)

2.配置

// 进入容器内部
docker exec -it mongo-server-28017 bash
// 在主节点服务器上 连接到MongoDB  
mongo --host localhost --port 27017 --shell  
use admin  
// 在shell中输入以下命令来创建一个具有足够权限的用户(这里我们使用"root"作为用户名和"password"作为密码)  
db.createUser({user: "root", pwd: "root", roles: ["root"]}) 
// 然后,退出shell,并重新连接,这次使用新创建的用户进行验证  
exit 
mongo --host localhost --port 27017 --username root --password root --shell 

2.1 初始化副本集配置

// 初始化副本集
rs.initiate({_id: "rs0", members: [{_id: 0, host: "mongo-server-28017:27017"}, {_id: 1, host: "mongo-server-28018:27017"}, {_id: 2, host: "mongo-server-28019:27017"}]})
// 检查members属性
rs.status() 
  • rs.initiate 是初始化复制集的方法。
  • {_id: “rs0”, members: […]} 是复制集的配置。其中,_id 是复制集的名称,members 是复制集的成员列表。
  • {_id: 0, host: “mongo-server-28017:27017”} 是一个成员的配置,其中_id是成员的ID,host是该成员的地址和端口。

2.2 强制修改副本集配置

rs.reconfig({_id: "rs0", members: [{_id: 0, host: "mongo-server-28017:27017"}, {_id: 1, host: "mongo-server-28018:27017"}, {_id: 2, host: "mongo-server-28019:27017"}]},{force:true})
  • rs.reconfig 是重新配置复制集的方法。
  • {_id: “rs0”, members: […]} 是新的复制集配置。其中,_id 是复制集的名称,members 是复制集的成员列表。
  • {_id: 0, host: “mongo-server-28017:27017”} 是一个成员的配置,其中_id是成员的ID,host是该成员的地址和端口。
  • {force: true} 是一个可选参数,当设置为true时,它将会强制重新配置复制集,即使这个操作可能会导致数据丢失或服务中断。

3.验证

// MongoDB 主节点进行写入
mongo --port 28017
rs0:PRIMARY> db.user.insert([{name:"fox"},{name:"mongo"}])
// MongoDB 从节点进行读
mongo --port 28018
rs0:SECONDARY> rs.secondaryOk()
rs0:SECONDARY> db.user.find()
查看当前节点角色:
db.isMaster()

4.问题

// 如果安装有问题,使用以下命令卸载重装
docker stop mongo-server-28017 mongo-server-28018 mongo-server-28019
docker rm mongo-server-28017 mongo-server-28018 mongo-server-28019
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要使用 Docker 搭建 MongoDB,可以按照以下步骤操作: 1. 首先,在 Docker 上搜索 MongoDB 的官方镜像。可以使用以下命令在 Docker Hub 上搜索镜像: ``` docker search mongo ``` 2. 找到官方的 MongoDB 镜像,使用以下命令从 Docker Hub 上拉取镜像: ``` docker pull mongo ``` 3. 创建一个 MongoDB容器,使用以下命令: ``` docker run --name mongodb -p 27017:27017 -d mongo ``` 这个命令会创建一个名为 mongodb容器,并将它映射到主机的 27017 端口上。容器会在后台运行。 4. 可以使用以下命令检查容器是否正在运行: ``` docker ps ``` 如果看到 mongodb 容器正在运行,那么说明容器已经成功启动了。 5. 可以使用以下命令连接到 MongoDB 容器: ``` docker exec -it mongodb bash ``` 6. 进入容器后,可以使用以下命令连接到 MongoDB 数据库: ``` mongo ``` 如果连接成功,会看到 MongoDB 的 shell 提示符。 现在已经成功使用 Docker 搭建MongoDB,可以在容器中使用 MongoDB 进行开发和测试。 ### 回答2: 要搭建MongoDBDocker容器,首先需要确保已经安装并配置好了Docker。以下是搭建MongoDB Docker容器的步骤: 1. 打开终端或命令提示符,并输入以下命令来下载MongoDB Docker镜像: ``` docker pull mongo ``` 2. 安装完成后,可以使用以下命令来创建和启动MongoDB容器: ``` docker run --name mymongo -p 27017:27017 -d mongo ``` 其中,`mymongo`是你给容器起的名字,`27017`是MongoDB默认的端口号。 3. 使用以下命令来检查容器是否正常运行: ``` docker ps ``` 如果看到了`mongo`容器正在运行,表示成功搭建MongoDB Docker容器。 4. 要连接到MongoDB容器并使用其实例,可以使用以下命令: ``` docker exec -it mymongo mongo ``` 其中,`mymongo`是你给容器起的名字。这会启动MongoDB的命令行 Shell。 以上就是使用Docker搭建MongoDB的简单步骤,通过这种方式,你可以轻松地创建和管理MongoDB容器,以便于开发和测试。 ### 回答3: 要使用Docker搭建Mongo数据库,我们可以按照以下步骤进行操作: 第一步,安装DockerDocker Compose。Docker是一种容器化平台,可以轻松地创建和管理容器Docker Compose是一个用于定义和运行多个容器的工具。 第二步,创建一个Docker Compose文件。Docker Compose文件是一个YAML格式的文件,用于定义和配置应用程序的各个服务。在这个文件中,我们需要定义Mongo容器的配置信息,例如版本、映射端口、数据存储位置等。 第三步,运行Docker Compose。使用命令行工具进入到存放Docker Compose文件的目录,然后运行以下命令: ``` docker-compose up -d ``` 这个命令会根据Docker Compose文件的配置信息,创建并运行Mongo容器。通过选项“-d”,容器将在后台运行。 第四步,验证Mongo容器是否成功搭建。可以使用以下命令查看容器的运行状态: ``` docker ps ``` 如果看到Mongo容器的状态为“Up”,说明搭建成功。 第五步,连接到Mongo容器。可以使用Mongo客户端工具,例如MongoDB Compass或命令行工具mongo,连接到Mongo容器。 ``` mongo localhost:27017 ``` 在连接成功后,你可以开始使用Mongo数据库进行数据操作了。 总结起来,使用Docker搭建Mongo数据库非常简单,只需安装DockerDocker Compose,创建Docker Compose文件,并运行即可。这种方式可以让我们快速搭建开发和测试环境,并提供了隔离和便携性的好处。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值