docker-compose安装MongoDB 7.0.12

文章目录

  • [一. Mac](#一. Mac)
      • [1.1 创建目录](#1.1 创建目录)
      • [1.2 docker-compose.yaml](#1.2 docker-compose.yaml)
      • [1.3 部署](#1.3 部署)
      • [1.4 卸载](#1.4 卸载)
      • [1.5 replSet配置](#1.5 replSet配置)
          • [1.5.1 初始化replSet](#1.5.1 初始化replSet)
          • [1.5.2 创建超管用户](#1.5.2 创建超管用户)
          • [1.5.3 验证用户](#1.5.3 验证用户)
          • [1.5.4 查看replSet状态](#1.5.4 查看replSet状态)
  • [二. Centos7](#二. Centos7)
      • [2.1 创建目录](#2.1 创建目录)
      • [2.2 docker-compose.yaml](#2.2 docker-compose.yaml)
      • [2.3 部署](#2.3 部署)
      • [2.4 卸载](#2.4 卸载)
      • [2.5 replSet配置](#2.5 replSet配置)
          • [2.5.1 初始化replSet](#2.5.1 初始化replSet)
          • [2.5.2 创建超管用户](#2.5.2 创建超管用户)
          • [2.5.3 验证用户](#2.5.3 验证用户)
          • [2.5.4 查看replSet状态](#2.5.4 查看replSet状态)

参考 https://blog.csdn.net/a179583637/article/details/140816706

一. Mac

1.1 创建目录

复制代码
mkdir -p /Users/wanfei/docker-compose/mongodb && cd /Users/wanfei/docker-compose/mongodb

1.2 docker-compose.yaml

默认不开启relSet
复制代码
cat <<EOF> /Users/wanfei/docker-compose/mongodb/docker-compose.yaml
version: '3'
services:
  mongodb:
    restart: always
    image: registry.cn-shanghai.aliyuncs.com/wanfei/mongo:7.0.12
    container_name: mongodb
    privileged: true    
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: root
      TZ: Asia/Shanghai
    volumes:
      - /Users/wanfei/docker-compose/mongodb/data:/data/db
    ports:
      - 27017:27017
    command: mongod --auth
EOF
开启relSet(数据同步)
复制代码
cat <<EOF> /Users/wanfei/docker-compose/mongodb/docker-compose.yaml
version: '3'
services:
  mongodb:
    restart: always
    image: registry.cn-shanghai.aliyuncs.com/wanfei/mongo-relset:7.0.12
    container_name: mongodb
    volumes:
      - /Users/wanfei/docker-compose/mongodb/data:/data/db
    ports:
      - 27017:27017
    command: >
      bash -c "
      openssl rand -base64 756 > /etc/mongodb-keyfile &
      chmod 400 /etc/mongodb-keyfile & 
      mongod --replSet rs0 --auth --keyFile /etc/mongodb-keyfile --bind_ip_all"      
EOF

开启replSet不能配置用户信息,否则初始化replSet报错

1.3 部署

复制代码
docker-compose -f /Users/wanfei/docker-compose/mongodb/docker-compose.yaml up -d

1.4 卸载

复制代码
docker-compose -f /Users/wanfei/docker-compose/mongodb/docker-compose.yaml down

1.5 replSet配置

1.5.1 初始化replSet

不能一开始创建账号密码,否则这一步报错

复制代码
docker exec -it mongodb mongosh admin

rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "127.0.0.1:27017" }
  ]
})
1.5.2 创建超管用户
复制代码
db.createUser({
    user: "root",
    pwd: "root",
    roles: [ { role: "root", db: "admin" } ]
  })
1.5.3 验证用户
复制代码
db.auth('root','root')
1.5.4 查看replSet状态
复制代码
rs.status()

二. Centos7

2.1 创建目录

复制代码
mkdir -p /root/i/docker-compose/mongodb && cd /root/i/docker-compose/mongodb

2.2 docker-compose.yaml

默认不开启relSet
复制代码
cat <<EOF> /root/i/docker-compose/mongodb/docker-compose.yaml
version: '3'
services:
  mongodb:
    restart: always
    image: registry.cn-shanghai.aliyuncs.com/wanfei/mongo:7.0.12
    container_name: mongodb
    privileged: true    
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: root
      TZ: Asia/Shanghai
    volumes:
      - /root/i/docker-compose/mongodb/data:/data/db
    ports:
      - 27017:27017
    command: mongod --auth
EOF
开启relSet(数据同步)
复制代码
cat <<EOF> /root/i/docker-compose/mongodb/docker-compose.yaml
version: '3'
services:
  mongodb:
    restart: always
    image: registry.cn-shanghai.aliyuncs.com/wanfei/mongo-relset:7.0.12
    container_name: mongodb
    volumes:
      - /root/i/docker-compose/mongodb/data:/data/db
    ports:
      - 27017:27017
    command: >
      bash -c "
      openssl rand -base64 756 > /etc/mongodb-keyfile &
      chmod 400 /etc/mongodb-keyfile & 
      mongod --replSet rs0 --auth --keyFile /etc/mongodb-keyfile --bind_ip_all"      
EOF

开启replSet不能配置用户信息,否则初始化replSet报错

2.3 部署

复制代码
docker-compose -f /root/i/docker-compose/mongodb/docker-compose.yaml up -d

2.4 卸载

复制代码
docker-compose -f /root/i/docker-compose/mongodb/docker-compose.yaml down

2.5 replSet配置

2.5.1 初始化replSet

不能一开始创建账号密码,否则这一步报错

复制代码
docker exec -it mongodb mongosh admin

rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "127.0.0.1:27017" }
  ]
})
2.5.2 创建超管用户
复制代码
db.createUser({
    user: "root",
    pwd: "root",
    roles: [ { role: "root", db: "admin" } ]
  })
2.5.3 验证用户
复制代码
db.auth('root','root')
2.5.4 查看replSet状态
复制代码
rs.status()
相关推荐
数据库小组5 小时前
10 分钟搞定!Docker 一键部署 NineData 社区版
数据库·docker·容器·database·数据库管理工具·ninedata·迁移工具
爬山算法5 小时前
MongoDB(38)如何使用聚合进行投影?
数据库·mongodb
灰阳阳6 小时前
Docker镜像远程(离线)迁移教程
运维·docker·容器
糟糕喔9 小时前
harbor私有仓库搭建
运维·docker·云原生·容器·kubernetes
数据知道10 小时前
MongoDB容量规划与资源预测:如何预估未来增长需求?
数据库·mongodb
数据知道13 小时前
详解MongoDB监控体系:Zabbix/Prometheus集成实战指南
mongodb·zabbix·prometheus
数据知道13 小时前
MongoDB认证机制实战:详细讲述SCRAM-SHA与X.509证书认证配置
数据库·mongodb
执笔为剑14 小时前
docker环境升级数据库
数据库·docker·容器
数据知道14 小时前
MongoDB审计日志配置:详细讲述满足合规性要求的安全记录
数据库·安全·mongodb
Full Stack Developme14 小时前
MongoDB 应用场景
数据库·mongodb