docker-compose部署mongodb 5.0.5集群

一、服务器

10.1.1.165
10.1.1.164
10.1.1.169

二、生成mongodb.key

root@mongodb:/data# openssl rand -base64 756>mongodb.key
u2aDJG+yz9uLwdWSavN/yh7noG0wfnTvOalKO5xNuTMQ85daIqkWnOh1YgKzbosr
qTvU1Np2PU4QpLJIHtwU1XfHgvkCQRR7oxSAC5/0ntiLSbHYicdLkbnZetVsowdy
AZMD7N25a1oeiFndal0yao5Pb21Wcg1Tq5DXRgygz9i7i1uDSFkJJZcauLZTUzCc
rE4W5RYND/5eeK5J1BYxSs8FP5fT60iWzdFGlwkMN3lEeeT/V5GR+3W5crQmanf3
m/569DiLxkmP/6TURWxjwESaicO03bLvtU4tR45+HplwLDB9Nc4lv7MXO83MkFpi
zhd3xNK1tKrvM+tCDjNcDYoI5xEygsYL/x7eW8QbqTGfwgEqkSri5GrRIGUltlBh
WyhCMpbu+Uccn8Q7jBxoBzSMVIcY5FoajQmkinjPO44sN3nKuF8IIJ05JeskqZtS
aMg/hmVaFcjhXAdpURcJWLnYnwdB8H2w0UHWHAAsEmi+QPtC2NAE+llXGfD1h1/y
m9x02c6Z/7aa9U9YiISh/2N4h7y0NWwQf3PzyXSaegaBy6fQq7phl69Z0SOq2g1k
YndXnEONwdJcCnkuM4TlFZZwct3zJirCyuVtlIcdGm5bC4J45YDQbE7BznsWD9D7
8v4X/5fMyKXmbVZLfucbjBWO7h4lYCFMkt7GXmEAhqi0vbqNuIfd9rxyJfSwThiR
AHFhT7r5mfeLitMKp0NY8KCN+mcT3lSWLUu4MASNAz0FqyOzJWVDwr47ZnQQ7+bG
BkzlOKxHTvLrwhL50CeuPw1gzAKhk6vGhMu0J0yZJQuK1k7FYh3Xa4LxR12d+Ahn
hEdP6DxsYxRoU/DnNWio68BVvz3Rymrgko986YApdTead3JXPWitCXOVx11IGQMf
rWzTUkkncIZkYHqjPZ3kFveofEGW4brQI97f4i5YgRqfCpSifaDuiZCrb+Qa1Kpb
+yc8+8qcz0FCUIZ5AIIhbN2HHvyecAvh69kn09dc7QEN7GjL

三、docker-compose文件

version: '3'
services:
  mongo:
    image: mongo:5.0.5
    container_name: mongodb
    restart: on-failure
    network_mode: host
    command: mongod --replSet rs0 --keyFile /mongodb.key
    environment:
      TZ: Asia/Shanghai
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: 123456
    volumes:
      - /etc/localtime:/etc/localtime
      - /mongodb/data:/data/db
      - /mongodb/configdb:/data/configdb
      - /mongodb/logs:/data/log
      - /mongodb/mongodb.key:/mongodb.key
    entrypoint:
      - bash
      - -c
      - |
        chmod 400 /mongodb.key
        chown 999:999 /mongodb.key
        exec docker-entrypoint.sh $$@

四、集群初始化

rs.initiate(
  {
    _id : 'rs0',
    members: [
      { _id : 0, host : "10.1.1.165:27017" },
      { _id : 1, host : "10.1.1.164:27017" },
      { _id : 2, host : "10.1.1.169:27017" }
    ]
  }
)

使用docker-compose部署MongoDB的详细步骤如下: ### 安装前准备 - 下载镜像:使用`docker pull mongo:5.0.14`命令下载MongoDB 5.0.14版本的镜像。 - 创建目录:在Linux系统中,使用`mkdir -p /usr/local/docker/mongodb/db`命令新建一个mongo文件夹。 - 进入目录并创建文件:使用`cd /usr/local/docker/mongodb`命令进入该目录,然后使用`touch docker-compose.yml`命令创建`docker-compose.yml`文件 [^1]。 ### 编写docker-compose.yml文件 以下是一个示例的`docker-compose.yml`文件: ```yaml version: '3' services: mongodb: image: mongo:4.4 container_name: mongodb restart: always environment: TZ: Asia/Shanghai # MONGO_INITDB_DATABASE: test # MONGO_INITDB_ROOT_USERNAME: admin # MONGO_INITDB_ROOT_PASSWORD: admin ports: - "27017:27017" volumes: - /etc/localtime:/etc/localtime - /opt/docker-data/mongodb/data:/data/db - /opt/docker-data/mongodb/logs:/data/logs - /opt/docker-data/mongodb/config:/data/configdb # command: # - /bin/bash # - -c # - mongod --port 27017 --bind_ip_all --auth ``` [^2] ### 新建启动脚本 可以创建一个名为`mongo.sh`的启动脚本,内容如下: ```bash #!/bin/bash # 挂载路径 DATA_DIR=/opt/docker-data/mongodb/data LOG_DIR=/opt/docker-data/mongodb/log CONFIG_DIR=/opt/docker-data/mongodb/config # 如果目录不存在,则创建目录并设置权限 if [ ! -d "$DATA_DIR" ]; then mkdir -p "$DATA_DIR" chmod -R 777 "$DATA_DIR" fi if [ ! -d "$LOG_DIR" ]; then mkdir -p "$LOG_DIR" chmod -R 777 "$LOG_DIR" fi if [ ! -d "$CONFIG_DIR" ]; then mkdir -p "$CONFIG_DIR" chmod -R 777 "$CONFIG_DIR" fi ``` [^3] ### 启动MongoDB服务 在`docker-compose.yml`文件所在目录下,使用`docker-compose up -d`命令启动MongoDB服务。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值