容器化部署mongodb集群

环境准备

1、三台机器,安装好docker
2、时间同步配置
3、安装docker-compose

配置

1、生成同步用的key

mkdir mongo-cluster
openssl rand -base64 768 > mongo-repl.key

2、配置启动模板(每台机器都需要)

#cat docker-compose.yml
version: "3.3"
services:
  mongodb_server:
    image: mongo:4.4
    command: mongod --serviceExecutor adaptive --replSet rs1 --port 27017 --keyFile /etc/mongo-repl.key
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=admin_user
      - MONGO_INITDB_ROOT_PASSWORD=admin_pass
    volumes:
      - ./db:/data/db
      - ./mongo-repl.key:/etc/mongo-repl.key

3、启动mongdb

docker-compose up -d

4、配置副本配置

#cat replication-init.js
db.auth('admin_user', 'admin_pass');
rs.initiate(
    {_id: "rs1", version: 1,
        members: [
            { _id: 0, host : "10.0.0.1:27017" },
            { _id: 1, host : "10.0.0.2:27017" },
            { _id: 2, host : "10.0.0.3:27017" }
        ]
    }
);

###
 docker run  mongo:4.4 mongo --username admin_user --password admin_pass --host 10.0.0.1:27017 --authenticationDatabase admin admin  --eval "$(< replication-init.js)"
 docker run  mongo:4.4 mongo --username admin_user --password admin_pass --host 10.0.0.1:27017 --authenticationDatabase admin admin  --eval "rs.status()"

5、创建应用库

#cat cmdb-init.js
db.auth('admin_user', 'admin_pass');
db = db.getSiblingDB('cmdb');
db.createUser({
  user: 'cc',
  pwd: 'cc',
  roles: [
    {
      role: 'dbOwner',
      db: 'cmdb',
    },
  ],
});

###
docker run  mongo:4.4 mongo --username admin_user --password admin_pass --host 10.0.0.1:27017 --authenticationDatabase admin admin --eval "$(< cmdb-init.js)"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值