惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
J
Java Code Geeks
博客园 - 【当耐特】
宝玉的分享
宝玉的分享
腾讯CDC
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
V
V2EX
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
Jina AI
Jina AI
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
B
Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium

博客园 - Leo

19-EasyNetQ:用EasyNetQ.Hosepipe重新提交错误信息 18-EasyNetQ:发生错误的情况 17-EasyNetQ:非泛型的发布&订阅扩展方法 16-EasyNetQ之自动订阅者 15-EasyNetQ之对延迟消息插件的支持 - Leo - 博客园 14-EasyNetQ之用Future Publish发布预定中事件 13-EasyNetQ之发布者确认 12-EasyNetQ之消息版本控制 11-EasyNetQ之多态发布和订阅 10-EasyNetQ之控制队列名称 9-EasyNetQ之基于主题的路由 - Leo - 博客园 8-EasyNetQ之Send & Receive 7-EasyNetQ之Request & Response 6-EasyNetQ之订阅 5-EasyNetQ之Publish(黄亮翻译) 4-EasyNetQ之Logging(黄亮翻译) 3-在EasyNetQ上使用SSL连接(黄亮翻译) 2-用EasyNetQ连接RabbitMQ(黄亮翻译) 1-EasyNetQ介绍(黄亮翻译) - Leo - 博客园
在Windows上使用Docker 创建MongoDB 副本集的极简方法(翻译)
Leo · 2021-10-24 · via 博客园 - Leo

这篇博客介绍下在Windows上使用Docker 创建MongoDB 三节点副本集的最简单的方法。以下命令需要Docker for Windows并使用Linux 容器。

1: 为每个节点创建数据卷

docker volume create --name mongodb_repl_data1 -d local
docker volume create --name mongodb_repl_data2 -d local
docker volume create --name mongodb_repl_data3 -d local

2:创建一个docker-compose.yml 文件。

version: "3"

services:
  mongo0:
    hostname: mongo0
    container_name: mongo0
    image: mongo:latest
    expose:
    - 27017
    ports:
      - 27017:27017
    volumes:
       - 'mongodb_repl_data1:/data/db:z'
    restart: always
    command: "--bind_ip_all --replSet rs0 --port 27017"
  mongo1:
    hostname: mongo1
    container_name: mongo1
    image: mongo:latest
    expose:
    - 27018
    ports:
      - 27018:27017
    volumes:
       - 'mongodb_repl_data2:/data/db:z'
    restart: always
    command: "--bind_ip_all --replSet rs0 --port 27018"
  mongo2:
    hostname: mongo2
    container_name: mongo2
    image: mongo:latest
    expose:
    - 27019
    ports:
      - 27019:27017
    volumes:
       - 'mongodb_repl_data3:/data/db:z'
    restart: always
    command: "--bind_ip_all --replSet rs0 --port 27019"

volumes:
  mongodb_repl_data1:
    external: true
  mongodb_repl_data2:
    external: true
  mongodb_repl_data3:
    external: true

3: 开启容器。

docker-compose up -d

4: 进入Mongodb Shell

docker exec -it mongo0 mongo --port 27017

5:配置副本集

在mongodb shell 中执行以下语句。

config={"_id":"rs0","members":[{"_id":0,"host":"mongo0:27017"},{"_id":1,"host":"mongo1:27018"},{"_id":2,"host":"mongo2:27019"}]}

注:
需要修改Hosts文件
C:\Windows\System32\drivers\etc\hosts
添加以下内容:
127.0.0.1 mongo0 mongo1 mongo2

6:初始化副本集

rs.initiate(config);

7:添加mongodb 用户

你会看到上面命令执行完,mongodb shell 切换到了SECONDARY,
键入回车后,mongodb shell 会切换到PRIMARY 。
之后创建用户

use admin
db.createUser({user: "admin", pwd: "admin123456", roles: [{ role: "root", db: "admin" }], mechanisms: ["SCRAM-SHA-1"]})

8: 最后

使用quit或者 ctrl+c 退出mongodb shell
现在可以使用以下链接去连接mongodb了:

mongodb://admin:admin123456@localhost:27017,localhost:27018,localhost:27019/skyee-cards-db?replicaSet=rs0&authSource=admin

英文原文地址: https://bytemares.com/mongodb/docker/2019/10/01/simple-mongodb-replica-set-with-docker.html
注:我在原文基础上添加了创建用户步骤。