这篇博客介绍下在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

注:我在原文基础上添加了创建用户步骤。

在Windows上使用Docker 创建MongoDB 副本集的极简方法(翻译)的更多相关文章

  1. 创建MongoDB副本集教程

    今天有时间搞了一下mongoDB的副本集,遇到好多坑,写下此文,方便日后查阅! 本教程是在windows环境下安装测试的(我是本机一台 + 两台虚拟机) 本机:10.53.8.159 虚拟机一:10. ...

  2. 创建mongodb副本集操作实例

    一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...

  3. nodejs+mongoose操作mongodb副本集实例

    继上一篇设置mongodb副本集之后,开始使用nodejs访问mongodb副本集: 1:创建项目     express 项目名称 2:npm install mongoose    安装mongo ...

  4. windows版本 MongoDB副本集搭建及开启身份验证

    ------------恢复内容开始------------ ------------恢复内容开始------------ MongoDB副本集搭建 我搭建的是一个主节点,两个副节点 构建目录结构如下 ...

  5. Docker下搭建mongodb副本集

    背景 有需求需要对mongodb做一个容灾备份.根据官网,发现mongodb最新版本(4.0)已经抛弃了主从模式而采用副本集进行容灾.副本集的优势在于:"有自动故障转移和恢复特性,其任意节点 ...

  6. 在Windows上使用Docker运行.NetCore

    今天我们来说下如何在windows下使用docker运行.net core,既然是docker,那么我们首先得在windows上安装docker. 在Windows安装 docker 有两种选择 :1 ...

  7. 在centos7上搭建mongodb副本集

    1.安装副本集介绍 副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成.通过Replication,将数据的 ...

  8. 004.Create a web app with ASP.NET Core MVC using Visual Studio on Windows --【在 windows上用VS创建mvc web app】

    Create a web app with ASP.NET Core MVC using Visual Studio on Windows 在 windows上用VS创建mvc web app 201 ...

  9. linux上安装MongoDB副本集(带keyfile安全认证以及用户权限)

    搭建前准备 MongoDB版本:4.0 主要参考搭建MongoDB副本集网站:https://www.jianshu.com/p/f021f1f3c60b 安装之前最好先确定一下几点: 防火墙关闭 M ...

随机推荐

  1. Java实现一个死锁

    Java实现一个死锁 有一个藏宝图(treasureMapFragment)分成两份jack持有treasureMapFragment1残片1,json持有残片2.jack要求必须先看到json的残图 ...

  2. Echarts中Option属性设置

    目录 一.title--标题组件 二.legend--图例组件 三.tooltip--提示框组件 四.grid--可用于调整图例在整个容器中的占位 五.xAxis--x 轴 六.yAxis-y 轴 七 ...

  3. Linux 学习路线

    前言 这篇文章会一直更新...只是将个人的文章总结归纳到这,不代表最佳学习路线 没有链接的文章后续会补上...还没写的知识点未来用到也会补上...太卷了 常用基础命令 Linux常用命令 - cd命令 ...

  4. 模拟BS服务器

    一.模拟BS服务器分析 二.BS模拟服务器代码实现 图片都是单独请求,后台单独线程,这边是通过构造方法传入的Runable接口的实现类匿名对象创建线程: 创建本地输入流读取到网络输出流传过来的信息再放 ...

  5. Vue配置axios

    1)安装插件(一定要在项目目录下): >: cnpm install axios 2)在main.js中配置: import axios from 'axios' Vue.prototype.$ ...

  6. ☕【JVM技术指南】「JVM总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【下部】

    承接上文 (完结撒花1-52系列)[JVM技术指南]「JVM总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"[上部] 并行收集器 并行收集器(也称为吞吐量收集器)是类似 ...

  7. tomcat服务字符编码改为UTF-8

    -Dfile.encoding=UTF-8 --仅供参考

  8. golang中的闭包_closure

    闭包_Closure: 1.一般情况下,第一类对象都是独立的封闭的存在的,独立的封闭的起作用; 2.第一类对象可以被创建; 3.第一类对象可以作为参数传递给其他函数; 4.第一类对象可以赋值给变量实体 ...

  9. trait能力在PHP中的使用

    相信大家对trait已经不陌生了,早在5.4时,trait就已经出现在了PHP的新特性中.当然,本身trait也是特性的意思,但这个特性的主要能力就是为了代码的复用. 我们都知道,PHP是现代化的面向 ...

  10. TP5开启缓存

    https://www.kancloud.cn/manual/thinkphp5/215850 V5.0.6+版本开始,全局请求缓存支持设置排除规则,使用方法如下:config.php文件 'requ ...