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()
相关推荐
喵叔哟38 分钟前
7. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--反馈存储与数据治理:MongoDB 设计与运维
运维·mongodb·.net
码界奇点3 小时前
平替MongoDB金仓多模数据库在电子证照国产化中的实践与优势
数据库·mongodb·社交电子·里氏替代原则
梁正雄4 小时前
扩展-docker-ovs编译
运维·docker·容器
凯子坚持 c7 小时前
通往Docker之路:从单机到容器编排的架构演进全景
docker·容器·架构
Fuly10247 小时前
使用docker本地部署dify
运维·docker·容器
遇见火星11 小时前
Ubuntu Docker 容器化部署教程
linux·ubuntu·docker
Panda__Panda13 小时前
docker项目打包演示项目(数字排序服务)
运维·javascript·python·docker·容器·c#
xx.ii13 小时前
Docker监控
运维·docker·容器
维尔切14 小时前
Docker 存储与数据共享
运维·docker·容器
温柔一只鬼.14 小时前
Docker快速入门——第四章Docker镜像
运维·docker·容器