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()
相关推荐
Patrick_Wilson14 小时前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy1 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭1 天前
运行你的第一个Docker容器
后端·docker·容器
葫芦和十三1 天前
图解 MongoDB 12|索引与查询优化地图:一条主线,三个判断轴
后端·mongodb·agent
葫芦和十三1 天前
图解 MongoDB 11|慢查询排查闭环:从 Profile 到 explain 的分层路径
后端·mongodb·agent
葫芦和十三1 天前
图解 MongoDB 09|explain 再读:从 queryPlanner 到 executionStats
后端·mongodb·agent
葫芦和十三1 天前
图解 MongoDB 10|覆盖查询:让索引把活干完,根本不用回表
后端·mongodb·agent
宋均浩2 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵3 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1113 天前
LM Studio Docker 部署——本地大模型一键启动
docker