当前位置: 首页 > news >正文

【MongoDB】docker部署社区版(一)

0、背景介绍

项目中使用MongoDB了,服务器挂掉,自己在本地搭一个试试。

1、版本选择

首先有社区版和和商业版。我选的是社区版。链接:https://hub.docker.com/r/mongodb/mongodb-community-server/tags

1.1、标签选择

看到标签有两个大类,一个是Ubuntu一个是ubi8
在这里插入图片描述
查了一下,这个指的是镜像的基础镜像操作系统(出处)。ubi8是红帽出的一个基础镜像,鉴于ubi8体积小一点点,捏着鼻子选了这个。个人还是比较偏爱Ubuntu的
docker pull mongodb/mongodb-community-server:7.0.0-ubi8

2、安装

2.1、命令

#创建挂载卷
#If you want to persist the data on your local machine, you can mount a volume using the -v argument.
mkdir -p /usr/local/db/mongodb/data
chmod 777 /usr/local/db/mongodb/data
mkdir -p /usr/local/db/mongodb/configdb
chmod 777 /usr/local/db/mongodb/configdb
#拉取镜像
docker pull mongodb/mongodb-community-server:7.0.0-ubi8
#启动镜像
docker run -itd --restart always --name mongodb7  -p 37018:27017 -e MONGO_INITDB_ROOT_USERNAME=**** -e MONGO_INITDB_ROOT_PASSWORD=****  -v /usr/local/db/mongodb/data:/data/db mongodb/mongodb-community-server:7.0.0-ubi8

如注释

2.1.1、创建挂载卷

 第一个命令【mkdir /usr/local/db/mongodb/data】创建数据映射目录,后续等启动后再看看配置的存储目录,之后再部署的时候把配置项也映射出来。
 第二个命令【chmod 777 /usr/local/db/mongodb/data】授权,否则启动的时候报错。见异常处理

2.1.2、拉取镜像

 第五行命令【docker pull mongodb/mongodb-community-server:7.0.0-ubi8】,从hub.docker.com拉取镜像。速度可能有点慢

2.1.3、启动容器

 第六行,启动一个名为【mongodb7 】的容器。
   -itd指后台运行;
   --restart always 指启动失败/宿主机重启后容器自动启动,好处是服务器重启时不用手动启容器,缺点是容器异常无法启动时会不停的重启,因此使用该参数创建容器后需要检查容器是否已经正常启动;
   -p 指端口映射,宿主机端口:容器内端口 ;
   -e指的是环境变量,****指代的是用户名、密码;
   -v是挂载的目录,将容器内的目录映射到宿主机的物理目录,用于数据的持久化,即使容器被销毁,数据仍在宿主机上存储。
在这里插入图片描述
  拉取镜像的过程有点坎坷,不知道也懒得配国内镜像。嫌弃慢的可以找国内镜像源,把docker的源换一下即可。

3、补充

官方页面
https://www.mongodb.com/compatibility/docker
原来启容器的时候可以指定设置root权限的用户名密码
To initialize your MongoDB with a root user, you can use the environment variables MONGO_INITDB_ROOT_USERNAME and MONGO_INITDB_ROOT_PASSWORD. These environment variables will create a user with root permissions with the specified user name and password.
If you want to use the mongoexport tool to export an existing collection to a .json file, you can use the command from a separate MongoDB container. You will need to mount a volume to be able to access the resulting JSON file.
想要使用mongo导出json功能,需要启动容器时映射临时文件。

docker run -it -v $(pwd):/tmp mongodb/mongodb-community-server:$MONGODB_VERSION mongoexport --collection=COLLECTION --out=/tmp/COLLECTION.json "mongodb://username:password@clusterURL/database"

4、异常处理

4.1、无法启动容器 Could not init database

部署时发现一旦挂载卷,就无法启动容器,命令如下

docker run -itd  --name mongotest02  -p 37018:27017  -v /usr/local/db/mongodb/data:/data/db  mongodb/mongodb-community-server:7.0.0-ubi8

查看容器状态:docker ps -a |grep mongo
显示的不是up,说明容器没有启动成功
在这里插入图片描述

查看容器日志:docker logs mongodb7

在这里插入图片描述
提示是配置错误,子进程执行失败,不能初始化数据库
在这里插入图片描述

4.2、解决方法

提示不能初始化数据库,想到可能配置有问题。但是经过对比后发现配置目录是空的,所以猜测是挂载卷权限不够,容器启动时不能在映射的目录创建文件,因此给目录授权。(授权最好按标准来,别学我都搞777容易埋坑)

chmod 777 /usr/local/db/mongodb/data

授权完毕后执行启动容器命令就可用了。

5、参考文档

https://www.mongodb.com/compatibility/docker
https://catalog.redhat.com/software/containers/ubi8/ubi/5c359854d70cc534b3a3784e

相关文章:

【MongoDB】docker部署社区版(一)

0、背景介绍 项目中使用MongoDB了,服务器挂掉,自己在本地搭一个试试。 1、版本选择 首先有社区版和和商业版。我选的是社区版。链接:https://hub.docker.com/r/mongodb/mongodb-community-server/tags 1.1、标签选择 看到标签有两个大类…...

【Graph Net学习】GNN/GCN代码实战

一、简介 GNN(Graph Neural Network)和GCN(Graph Convolutional Network)都是基于图结构的神经网络模型。本文目标就是打代码基础,未用PyG,来扒一扒Graph Net两个基础算法的原理。直接上代码。 二、代码 …...

RocketMQ 发送顺序消息

文章目录 顺序消息应用场景消息组(MessageGroup)顺序性生产的顺序性MQ 存储的顺序性消费的顺序性 rocketmq-client-java 示例(gRPC 协议)1. 创建 FIFO 主题生产者代码消费者代码解决办法解决后执行结果 rocketmq-client 示例&…...

【面试经典150 | 双指针】判断子序列

文章目录 写在前面Tag题目来源题目解题解题思路方法一:双指针方法二:动态规划 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对…...

自动驾驶信息安全方案

目录 1. 修订历史... 3 2. 概述... 4 2.1 目的... 4 2.2 适用范围... 4 2.3 参考文档... 4 2.4 术语和缩写... 4 3. 安全分析... 5 4. 总体设计... 6 4.1 ACU的安全防护... 7 4.1.1 系统安全引导... 7 4.1.2 密钥安全存储... 8 4.1.3 应…...

【云原生】kubernetes中pod(最小的资源管理组件)

目录 前言 一、pod 1.1pause容器使得Pod中的所有容器可以共享两种资源: 1.2 通常把Pod分为两类 1.2.1自主式Pod 1.2.2控制器管理的Pod 1.3 Pod 容器的分类 1.3.1基础容器(infrastructure container) 1.3.2初始化容器(initc…...

[DB]数据库--lowdb

[DB]数据库--lowdb lowdb基本应用获取数据数据变更写入文件 lodash的使用获取数据lodash方法使用数据变更写入文件 lowdb lowdb ,是一个基于文件存储的非关系型数据库 基于loadsh的轻量级数据库 可用于在json中存储数据,大小一般为0~200M的json文件 方便简单的数…...

Kotlin | 在for、forEach循环中正确的使用break、continue

文章目录 for循环中使用break、continueLabel标签forEach中如何退出循环资料 Kotlin 有三种结构化跳转表达式: return:默认从最直接包围它的函数或者匿名函数返回。break:终止最直接包围它的循环。continue:继续下一次最直接包围…...

【C++】详解std::mutex

2023年9月11日,周一中午开始 2023年9月11日,周一晚上23:25写完 目录 概述头文件std::mutex类的成员类型方法没有std::mutex会产生什么问题问题一:数据竞争问题二:不一致lock和unlock死锁 概述 std::mutex是C标准库中…...

Matlab图像处理-Lab模型

Lab模型 Lab模型是由CIE(国际照明委员会)制定的一种彩色模型。该模型与设备无关,弥补了RGB模型和CMYK模型必须依赖于设备颜色特性的不足; 另外,自然界中的任何颜色都可以在Lab空间中表现出来,也就是说RGB和…...

分布式ETL工具Sqoop实践

Mysql数据准备 1、在node02节点登录Mysql。 mysql -uroot -proot2、新建数据库testdb。 create database testdb;3、新建数据表ts。 use testdb; create table ts(id int, name varchar(10), age int, sex char(1));4、向表中插入数据。 insert into ts values(10001,张三…...

展会预告 | 图扑邀您共聚 IOTE 国际物联网展·深圳站

参展时间:9 月 20 日- 22 日 图扑展位:9 号馆 9B 35-1 参展地址:深圳国际会展中心(宝安新馆) IOTE 2023 第二十届国际物联网展深圳站,将于 9 月 20 日- 22 日在深圳国际会展中心(宝安&#xf…...

如何下载安装 WampServer 并结合 cpolar 内网穿透,轻松实现对本地服务的公网访问

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境,是一组常用来…...

iOS添加Mapbox地图库

配置凭据 注册并导航到Account页面。你将需要: 公共访问令牌: 从帐户的tokens页面,你可以复制默认的公共令牌或单击"create a token"按钮来创建新的公共令牌。 带有Downloads:Read范围的秘密访问令牌: 从你帐户的t…...

destoon根据目录下的html文件生成地图索引

因为项目需要&#xff0c;destoon根据目录下的html文件生成地图索引&#xff0c;操作方法&#xff0c;代码如下&#xff1a; <?php $new_array array(); function loopDir($dir,&$new_array,$modurl) {$handle opendir($dir);header("Content-Type:text/xml&qu…...

gRPC之gRPC流

1、gRPC流 从其名称可以理解&#xff0c;流就是持续不断的传输。有一些业务场景请求或者响应的数据量比较大&#xff0c;不适合使用普通的 RPC 调用通过一次请求-响应处理&#xff0c;一方面是考虑数据量大对请求响应时间的影响&#xff0c;另一方面业务场景的设计不一 定需…...

Kafka Shell命令交互

Kafka提供了一个命令行工具,用于管理和与Kafka集群交互。这个命令行工具通常称为Kafka Shell,它允许您执行各种操作,如创建主题、发送和消费消息、查看主题列表等。 以下是一些常用的Kafka Shell命令: 创建主题(Topic): kafka-topics.sh --create --topic my-topic --pa…...

什么是回归测试?

什么是回归测试&#xff1f; 回归测试被定义为一种软件测试类型&#xff0c;以确认最近的程序或代码更改未对现有功能产生不利影响。 回归测试只不过是全部或部分选择已执行的测试用例&#xff0c;然后重新执行以确保现有功能正常运行。 进行此测试是为了确保新代码更改不会…...

ZTMap是如何在相关政策引导下让建筑更加智慧化的?

近几年随着智慧楼宇概念的深入&#xff0c;尤其是在“十四五规划”“新基建”“数字经济”等相关战略和政策的引导下&#xff0c;智慧楼宇也迎来了快速发展期&#xff0c;对推动智慧城市系统的建设越来越重要。那么究竟什么是智慧楼宇呢&#xff1f;智慧楼宇其实就是整合楼宇内…...

Python:函数和代码复用

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备好了&#xff0c;直接在文末名片自取就可 1、关于递归函…...

three.js——模型对象的使用材质和方法

模型对象的使用材质和方法 前言效果图1、旋转、缩放、平移&#xff0c;居中的使用1.1 旋转rotation&#xff08;.rotateX()、.rotateY()、.rotateZ()&#xff09;1.2缩放.scale()1.3平移.translate()1.4居中.center() 2、材质属性.wireframe 前言 BufferGeometry通过.scale()、…...

sql explain

目录 1. sql explain每个字段对应的含义1.1. id1.2. select_type1.3. table1.4. partitions1.5. type1.6. possible_keys1.7. key1.8. key_len1.9. ref1.10. rows1.11. Extra 索引实践联合索引最左列原则全值匹配不建议在索引列上做任何操作, 否则索引会失效转而全表扫描尽量使…...

【LeetCode-简单题】剑指 Offer 05. 替换空格

文章目录 题目方法一&#xff1a;常规做法&#xff1a;方法二&#xff1a;双指针做法 题目 方法一&#xff1a;常规做法&#xff1a; class Solution {public String replaceSpace(String s) {int len s.length() ;StringBuffer str new StringBuffer();for(int i 0 ; i &l…...

数字虚拟人制作简明指南

如何在线创建虚拟人&#xff1f; 虚拟人&#xff0c;也称为数字化身、虚拟助理或虚拟代理&#xff0c;是一种可以通过各种在线平台与用户进行逼真交互的人工智能人。 在线创建虚拟人变得越来越流行&#xff0c;因为它为个人和企业带来了许多好处。 推荐&#xff1a;用 NSDT编辑…...

Nginx 文件解析漏洞复现

一、漏洞说明 Nginx文件解析漏洞算是一个比较经典的漏洞&#xff0c;接下来我们就通过如下步骤进行漏洞复现&#xff0c;以及进行漏洞的修复。 版本条件&#xff1a;IIS 7.0/IIS 7.5/ Nginx <8.03 二、搭建环境 cd /vulhub/nginx/nginx_parsing_vulnerability docker-compos…...

Lombok依赖

一.介绍 Project Lombok 是一个 Java 库&#xff0c;它会自动插入编辑器和构建工具&#xff0c;为您的 Java 增添趣味。永远不要再写另一个 getter 或 equals 方法&#xff0c;使用一个注释&#xff0c;您的类有一个功能齐全的构建器&#xff0c;自动化您的日志记录变量等等。…...

XML 和 JSON 学习笔记(基础)

XML Why XML 的出现背景&#xff1a;在实际开发中&#xff0c;不同语言&#xff08;如Java、JavaScript等&#xff09;的应用程序之间数据传递的格式不同&#xff0c;导致它们进行数据交换时很困难&#xff0c;XML就应运而生了&#xff01;&#xff08;XML 是一种通用的数据交…...

L1-005 考试座位号分数 15

每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需要换到考试…...

无涯教程-JavaScript - CEILING.MATH函数

描述 CEILING.MATH函数将数字四舍五入到最接近的整数或最接近的有效倍数。 Excel CEILING.MATH函数是Excel中的十五个舍入函数之一。 语法 CEILING.MATH (number, [significance], [mode])争论 Argument描述Required/OptionalNumberNumber must be less than 9.99E307 and …...

ChatGPT提示词(prompt)资源汇总

文章目录 awesome-chatgpt-promptsLearn PromptingSnack PromptFlow GPTPrompt VineChatGPT 指令大全AI Toolbox HubAI Short ChatGPT是一种强大的生成式AI模型&#xff0c;而提示词&#xff08;prompt&#xff09;则是与ChatGPT一起使用的指导性文本&#xff0c;用于引导模型生…...

无锡企业网站制作公司/制作网页教程

目前自动化测试可谓是人人在提&#xff0c;而且自动化工具和一些开源框架也是层出不穷。截止现在&#xff0c;我也接触了一些自动化的知识&#xff0c;分享下。 一、WebUI自动化 1. 工具或框架 Unittest框架&#xff0c;SeleniumWebdriverPython集成开发 优势&#xff1a; ①…...

asp.net做的小网站/上海seo网站推广公司

原标题&#xff1a;安卓电视/盒子很卡很慢原因及解决方法安卓电视以及机顶盒跟手机一样&#xff0c;在使用时间久了就会出现一些卡顿的现象&#xff0c;今天小编帮大家总结了一些导致安卓电视、盒子卡顿的原因&#xff0c;并且根据这些原因提出解决的办法&#xff0c;总有一个解…...

玉环做网站有哪些/各国足球世界排名

锁的概述 1、为什么要用锁 多任务环境中才需要任务都需要对同一共享资源进行写操作&#xff1b;对资源的访问是互斥的Tips&#xff1a; 任务通过竞争获取锁才能对该资源进行操作(①竞争锁)&#xff1b; 当有一个任务在对资源进行更新时&#xff08;②占有锁&#xff09;&#x…...

湖南网站营销seo哪家好/广告制作公司

结果展示 因为只引入了漫反射辐照&#xff0c;没有引入镜面反射&#xff0c;故只有Kd量有效。 当物体金属度越高时&#xff0c;或越接近90度视角时&#xff0c;kd量越小。 因此金属度越高&#xff0c;漫反射量越少&#xff0c;在图像中表现的越暗。 横坐标粗糙度只对镜面反射的…...

南阳企业网站建设/什么是网站推广?

一、基本思想&#xff1a; 通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c; 然后再按此方法对这两部分数据分别进行快速排序&#xff0c;整个排序过程可以递归进行&#xff0c;以此达到整个数据变…...

广州城市建设档案馆网站/百度关键词购买

用户对客户端设备补丁更新保持怀疑态度&#xff0c;因为他们担心他们的计算机会在未经许可的情况下突然自己重启&#xff0c;丢失数据。虽然&#xff0c;您可以在更新后推迟重新启动并安排选择的时间&#xff0c;具体取决于更新Windows在未经您许可的情况下仍可能在一段时间后重…...