• 在Windows上使用Docker 创建MongoDB 副本集的极简方法(翻译)


    这篇博客介绍下在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:WindowsSystem32driversetchosts
    添加以下内容:
    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
    注:我在原文基础上添加了创建用户步骤。

    如果您喜欢本文,更多文章,欢迎订阅我的微信订阅号:open_dotNET
  • 相关阅读:
    POJ 1797 Heavy Transportation
    洛谷 P3379 【模板】最近公共祖先(LCA)
    洛谷 P1351 联合权值
    51nod 1272 最大距离
    codevs 1664 清凉冷水
    COGS 1176. [郑州101中学] 月考
    HDU
    HDU
    一坨计算几何的板子
    bzoj2618[Cqoi2006]凸多边形
  • 原文地址:https://www.cnblogs.com/HuangLiang/p/15452130.html
Copyright © 2020-2023  润新知