使用 docker 一键部署 MongoDB

目录

1. 前期准备

2. 导入镜像

3. 部署MongoDB脚本

4. 配置模板文件

5. 部署MongoDB

6. 部署后配置

7. 基本维护


1. 前期准备

新部署前可以从仓库(repository)下载 MongoDB 镜像,或者从已有部署中的镜像生成文件:

# 查看当前本地镜像
docker images
# 生成本地镜像文件
docker save <IMAGE ID> -o mongodb_3015.tar

生成 MongoDB 副本集所需的 autokey 文件:

# 建立autokey文件
openssl rand -base64 756 > autokey
# 修改读写模式
chmod 400 autokey

2. 导入镜像

# 在新部署的机器上导入镜像
docker load -i mongodb_3015.tar
docker images

3. 部署MongoDB脚本

mongodb-deploy.sh 文件内容如下:

#!/bin/bashmkdir -p /usr/local/docker/mongodb/conf
mkdir -p /usr/local/docker/mongodb/data
cp /root/autokey /usr/local/docker/mongodb/data/
cp /root/mongodb.conf.template /usr/local/docker/mongodb/conf/mongodb.conf
chown -R polkitd:root /usr/local/docker/mongodb/docker run --name mongo \
-v /usr/local/docker/mongodb/data:/data/db \
-v /usr/local/docker/mongodb/conf:/data/conf \
-p 27017:27017 \
-e TZ=Asia/Shanghai \
-itd a.com:8443/dockerhub/mongo:3.0.15 \
--replSet mvbox_new

4. 配置模板文件

mongodb.conf.template 文件内容如下:

port            = 27017
logpath         = /data/db/mongodb.log
pidfilepath     = /data/db/mongodb.pid
dbpath          = /data/db/
logappend       = true
fork            = true
journal         = true
directoryperdb  = true
auth            = true
maxConns        = 1000
profile         = 1
replSet         = mvbox_new
keyFile         = /data/db/autokey

5. 部署MongoDB

# 在所有 MongoDB 副本集机器执行
./mongodb-deploy.sh

6. 部署后配置

在 primary 机器上执行下面的操作。

# 配置副本集
cp /root/rs_initiate.js /usr/local/docker/mongodb/data/
docker exec -it mongo mongo --port 27017 /data/db/rs_initiate.js

rs_initiate.js 文件内容如下:

rs.initiate({_id: "mvbox_new",version: 1,members: [{ _id: 0, host : "172.18.29.56:27017", priority:2 },{ _id: 1, host : "172.18.29.57:27017", priority:1 },{ _id: 2, host : "172.18.29.58:27017", priority:1 }]}
)
# 创建 admin 用户
docker exec -it mongo mongo --port 27017use admin;
db.createUser({user : "admin", pwd : "123456", roles: [ { role : "root", db : "admin" } ] });
exit;# 重新登录,创建更多用户
docker exec -it mongo mongo --port 27017 -u admin -p 123456 adminuse admin
db.createUser({user : "vvmusic_msg", pwd : "123456", roles: [ { role : "dbOwner", db : "vvmusic_msg" } ] });
db.createUser({user : "vvlive", pwd : "123456", roles: [ { role : "dbOwner", db : "vvlive" } ] });
use vvmusic_msg
db.createUser({user : "vvmusic_msg", pwd : "123456", roles: [ { role : "dbOwner", db : "vvmusic_msg" } ] });
use vvlive
db.createUser({user : "vvlive", pwd : "3123456", roles: [ { role : "dbOwner", db : "vvlive" } ] });
exit;# 验证用户登录
docker exec -it mongo mongo --port 27017 -u admin -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvlive -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvlive -p 123456 vvlive
docker exec -it mongo mongo --port 27017 -u vvmusic_msg -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvmusic_msg -p 123456 vvmusic_msg

7. 基本维护

# 查看镜像
docker images
# 查看容器
docker ps
# 查看容器详细信息
docker inspect <CONTAINER ID>
# 重启容器
docker restart mongo
# 停止容器
docker stop mongo
# 删除容器
docker rm mongo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/14978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zookeeper入门介绍

Zookeeper在我本次系统的学习之前是已经开始使用了&#xff0c;但是并不理解Zookeeper到底是什么&#xff0c;有什么作用&#xff0c;你或许跟我有一样的疑惑&#xff0c;本专栏将会解决这些疑惑。 目录 Zookeeper介绍&#xff1a; zookeeper特点&#xff1a; 数据结构&#x…

NUMA架构在kubernetes中的应用

numactl使用 numactl 通过将 CPU 划分多个 node 减少 CPU 对总线资源的竞争,一般使用在高配置服务器部署多个 CPU 消耗性服务使用。 numactl使用,numa常用命令,numa命令行使用 #numactl -H available: 2 nodes (0-1) node 0 cpus: 0 2 4 6 8 10 12 14 16 18 20 22 node 0…

09mysql之数据处理之增删改

#1. 创建数据库dbtest11 CREATE DATABASE IF NOT EXISTS dbtest11 CHARACTER SET utf8; #2. 运行以下脚本创建表my_employees USE dbtest11; CREATE TABLE my_employees( id INT(10), first_name VARCHAR(10), last_name VARCHAR(10), userid VARCHAR(10), salary DOUBLE(10,2)…

《MySQL 实战 45 讲》课程学习笔记(二)

日志系统&#xff1a;一条 SQL 更新语句是如何执行的&#xff1f; 与查询流程不一样的是&#xff0c;更新流程还涉及两个重要的日志模块&#xff1a;redo log&#xff08;重做日志&#xff09;和 binlog&#xff08;归档日志&#xff09;。 重要的日志模块&#xff1a;redo l…

【VSCode部署模型】导出TensorFlow2.X训练好的模型信息

参考tensorflow2.0 C加载python训练保存的pb模型 经过模型训练及保存&#xff0c;我们得到“OptimalModelDataSet2”文件夹&#xff0c;模型的保存方法(.h5或.pb文件)&#xff0c;参考【Visual Studio Code】c/c部署tensorflow训练的模型 其中“OptimalModelDataSet2”文件夹保…

Doris安装部署入门

文章目录 一 Doris 介绍1.1 使用场景1.1.2 Doris架构 二 Doris单机部署2.1 下载 Doris2.2 配置 Doris2.2.1 配置 FE2.2.2 启动 FE2.2.3 查看 FE 运行状态2.2.4 连接 FE2.2.5 停止 FE 节点2.2.6 配置 BE2.2.7 启动 BE2.2.8 添加 BE 节点到集群2.2.9 查看 BE 运行状态2.2.10 停止…

GitHub仓库如何使用

核心&#xff1a;GitHub仓库如何使用 目录 1.创建仓库&#xff1a; 2.克隆仓库到本地&#xff1a; 3.添加、提交和推送更改&#xff1a; 4.分支管理&#xff1a; 5.拉取请求&#xff08;Pull Requests&#xff09;&#xff1a; 6.合并代码&#xff1a; 7.其他功能&…

网络知识整理

网络知识整理 网络拓扑网关默认网关 数据传输拓扑结构层面协议层面 网络拓扑 网关 连接两个不同的网络的设备都可以叫网关设备&#xff0c;网关的作用就是实现两个网络之间进行通讯与控制。 网关设备可以是交换机(三层及以上才能跨网络) 、路由器、启用了路由协议的服务器、代…

k8s Webhook 使用java springboot实现webhook 学习总结

k8s Webhook 使用java springboot实现webhook 学习总结 大纲 基础概念准入控制器&#xff08;Admission Controllers&#xff09;ValidatingWebhookConfiguration 与 MutatingWebhookConfiguration准入检查&#xff08;AdmissionReview&#xff09;使用Springboot实现k8s-Web…

Shell脚本学习2

文章目录 Shell脚本学习2运算符算术运算符关系运算符布尔运算符字符串运算符文件测试运算符 字符串拼接字符串获取字符串长度截取字符串查找字符串 数组条件控制if语句case语句for循环while循环until循环跳出循环 Shell脚本学习2 运算符 Bash 支持很多运算符&#xff0c;包括…

Linux 学习记录57(ARM篇)

Linux 学习记录57(ARM篇) 本文目录 Linux 学习记录57(ARM篇)一、外部中断1. 概念2. 流程图框 二、相关寄存器1. GIC CPU Interface (GICC)2. GIC distributor (GICD)3. EXTI registers 三、EXTI 寄存器1. 概述2. 内部框图3. 寄存器功能描述4. EXTI选择框图5. EXTI_EXTICR1 &…

vue3 +element动态表单实现

可以直接复制&#xff0c;接口看后端 父页面 <schedulesref"schedulesRef":dxbz"props.dxbz":jdlx"props.jdlx":woId"myWoId":addendumList"formInline.addendumList"v-if"addendumShow"addendum"addendu…

如何快速同步第三方平台数据?

全量的数据主要是针对多个系统的历史数据,大概有几千万数据,只需要初始化一次即可。 而增量的数据,是系统后续变更的数据。 这个需求其实不简单,至少有以下难点: 不能直接访问第三方数据库。 不能将历史数据导出到excel中,有泄露数据的风险。 如何快速同步历史数据? 增…

HTML <progress> 标签

实例 正在进行的下载&#xff1a; <progress value"22" max"100"></progress> 浏览器支持 元素ChromeIEFirefoxSafariOpera<progress>8.010.016.06.011.0 定义和用法 <progress> 标签标示任务的进度&#xff08;进程&#xf…

【kubernetes系列】flannel之vxlan模式原理

概述 在Kubernetes中要保证容器之间网络互通&#xff0c;网络至关重要。而Kubernetes本身并没有自己实现容器网络&#xff0c;而是而是借助CNI标准&#xff0c;通过插件化的方式自由接入进来。在容器网络接入进来需要满足如下基本原则&#xff1a; Pod无论运行在任何节点都可…

九、HAL_IWDG独立看门狗的使用

1、开发环境 (1)Keil MDK: V5.38.0.0 (2)STM32CubeMX: V6.8.1 (3)MCU: STM32F407ZGT6 2、IWDG简介 (1)IWDG即独立看门狗。 (2)看门狗本质上是一个定时器&#xff0c;设置一个时间&#xff0c;时间到即让程序复位。所以需要在在时间未到之前重置定时器&#xff0c;也就是喂…

JavaWeb开发(后端Web开发【一】)

文章目录 前言一、Maven1.Maven概述-介绍1.1.Maven概述-介绍1.2.Maven概述-安装 2.IDEA集成Maven2.1.IDEA集成Maven-配置Maven环境2.2.IDEA集成Maven-创建Maven项目2.3.IDEA集成Maven-导入Maven项目 3.Maven-依赖管理3.1.Maven-依赖管理-依赖配置3.2.Maven-依赖管理-依赖传递3.…

MySQL5.7 与 MariaDB10.1 审计插件兼容性验证

这是一篇关于发现 MariaDB 审计插件导致 MySQL 发生 crash 后&#xff0c;展开适配验证并进行故障处理的文章。 作者&#xff1a;官永强 爱可生DBA 团队成员&#xff0c;擅长 MySQL 运维方面的技能。热爱学习新知识&#xff0c;亦是个爱打游戏的宅男。 本文来源&#xff1a;原创…

Ros2_windows_install的学习笔记

Ros2_windows_install安装 Iron安装 iex ((New-Object System.Net.WebClient).DownloadString(https://raw.githubusercontent.com/scottcandy34/ros2_windows_install/main/ros2_iron.ps1))启动Iron C:\dev\ros2_iron\local_setup.bat

Android 设备兼容性使用(详细版)

经典好文推荐,通过阅读本文,您将收获以下知识点: 一、设备兼容性分类 二、硬件设备兼容 三、软件 APP 兼容 四、兼容不同语言 五、兼容不同分辨率 六、兼容不同屏幕方向布局 七、兼容不同硬件 Feature 八、兼容不同SDK平台 一、设备兼容性分类 Android设计用于运行在许多不同…