这篇博客介绍下在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. 前后端数据交互(三)——ajax 封装及调用

    有很多框架已经将 ajax 封装,需要的时候只需要调用就好,比如 jquery 是最常用的.我们为什么还需要学习 ajax 的封装呢?首先加强我们对ajax的认识,其次如果只是因为ajax请求需要引入 ...

  2. RTSP H264/HEVC 流 Wasm 播放

    本文将介绍 RTSP H264/HEVC 裸流如何于网页前端播放.涉及 WebSocket 代理发送流数据, Wasm 前端解码等. 代码: https://github.com/ikuokuo/rt ...

  3. 性能测试工具JMeter 基础(四)—— 录制脚本

    对于JMeter中HTTP请求除了手动添加以为还可以进行脚本录制,有两个方法: 使用badboy录制,录制完成后,将录制的文件导入JMeter中 使用JMeter自带的录制原件进行录制(HTTP(S) ...

  4. 关闭Redis服务

    方式1: 方式2:

  5. Django项目从创建到运行

    环境: Windows Server 2008 R2 标准版 1.安装python运行环境(省略) 2.安装Django pip install Django==3.1.5 # 不写版本号也可以 3. ...

  6. python使用UTF-8写入CSV中文乱码

    使用encoding='utf-8',写入的文档是乱码. 解决办法: 修改encoding='utf-8-sig' 关于文件open()函数: open(path,'-模式-',encoding='u ...

  7. Python习题集(十四)

    每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我! https://www.cnblogs.com/poloyy/category/1676599.html 题目 请写一个函数,该函 ...

  8. Toast控件

    ------------恢复内容开始------------ 四种常见的App弹窗设计:Toast.Dialog.Actionbar 和 Snackbar 弹窗又称为对话框,是App与用户进行交互的常 ...

  9. 全局CSS样式表

    看api手册使用即可 1.按钮和图片 2.表格.表单 表单的lable作用就是点击前面的文字可以聚焦到对应的输入框中

  10. Windows中nginx多次启动的问题

    在Windows上做开发环境中的nginx服务器.为了使nginx在后台运行,使用如下命令来启停nginx: cd <nginx安装目录> # 开启nginx并在后台运行 start ng ...