docker-compose部署mongodb副本集群

使用docker-compose首先需要先安装 docker和docker-compose

1、linux安装部署docker

# step 0:卸载旧版本 没有装的可以直接跳过
sudo yum remove docker docker-client docker-client-latest docker-common \
docker-latest docker-latest-logrotate docker-logrotate docker-engine
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
 
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
# Step 3: 更新并安装Docker-CE
sudo yum makecache 
sudo yum -y install docker-ce
 
# Step 4: 开启Docker服务
sudo service docker start
 
# Step 5: 安装校验
docker version

2、linux安装部署docker-compose

# Step 0:拉取镜像(国内镜像源拉取)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# Step 1:赋权,运行一个命令试试是否安装成功
docker-compose
常用docker-compose指令:
1、查看配置命令:docker-compose config
2、后台启动:docker-compose up -d
3、构建镜像:docker-compose bulid
4、下载镜像:docker-compose pull
5、查看运行的镜像:docker-compose ps
6、查看进程:docker-compose top
7、启动已存在的容器命令:docker-compose start
8、停止正在运行的容器命令:docker-compose stop
9、查看服务日志输出:docker-compose logs

3、mongodb的docker-compose.yml

配置文件详解:

1、keyfile:MongoDB使用keyfile认证,副本集中的每个mongod实例使用keyfile内容作为认证其他成员的共享密码。mongod实例只有拥有正确的keyfile才可以加入副本集,且副本集所有成员的keyFile内容必须相同。
2、volumes :主要是挂载的文件地址;
3、 chown 999:999 /data/mongodb.k
### 使用 Docker Compose 部署 MongoDB 群 为了使用 `docker-compose` 来部署 MongoDB 群,可以按照如下方法进行配置。这涉及到创建一个合适的 `docker-compose.yml` 文件来定义多个 MongoDB 实例以及它们之间的复制关系。 #### 定义 docker-compose.yml 文件 下面是一个用于设置三节点 MongoDB 复制的 `docker-compose.yml` 文件示例: ```yaml version: '3' services: mongo1: image: mongo:latest container_name: mongo1 networks: - mongonet volumes: - ./data/db1:/data/db command: mongod --replSet rs0 --bind_ip_all ports: - "27017:27017" mongo2: image: mongo:latest container_name: mongo2 networks: - mongonet volumes: - ./data/db2:/data/db command: mongod --replSet rs0 --bind_ip_all mongo3: image: mongo:latest container_name: mongo3 networks: - mongonet volumes: - ./data/db3:/data/db command: mongod --replSet rs0 --bind_ip_all networks: mongonet: volumes: data_db1: data_db2: data_db3: ``` 此配置文件设置了三个 MongoDB 节点 (`mongo1`, `mongo2`, 和 `mongo3`) 并指定了这些容器应该加入同一个自定义网络 `mongonet` 中以便互相通信[^1]。每个实例都绑定了不同的本地存储卷以持久化数据,并且通过指定 `command` 参数启用了副本模式(`--replSet rs0`)和允许外部连接(`--bind_ip_all`)[^3]。 #### 初始化复制 一旦上述的服务已经启动完成之后,则需要初始化这个复制。可以通过进入任意一台MongoDB服务器内部执行以下JavaScript代码来进行初始化操作: ```javascript rs.initiate({ _id : "rs0", members: [ { _id : 0, host : "mongo1:27017" }, { _id : 1, host : "mongo2:27017" }, { _id : 2, host : "mongo3:27017" } ] }) ``` 这段脚本告诉 MongoDB 建立一个新的名为 `rs0` 的复制,并列出了组成该合的所有成员及其地址[^4]。 #### 启动服务 最后,在包含了正确配置好的 `docker-compose.yml` 文件所在的目录下运行命令来启动整个环境: ```bash docker-compose up -d ``` 这条指令将会异步地构建、(如有必要的话重新)创建并启动所有的服务容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值