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

news2024/11/23 4:41:42

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

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

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

相关文章

23 DRF快速入门+部分源码分析

文章目录 前言知识前后端不分离前后端分离RESTful APIHTTP请求方法详解部分状态码(常见) Django补充知识创建多个app 安装安装完后的配置 Drf框架介绍相比于Django的优势基础介绍--快速入门--了解框架的大概实现Serializers基础准备编写Serializers.py 以…

S1FD40A180H-ASEMI快恢复二极管S1FD40A180H

编辑&#xff1a;ll S1FD40A180H-ASEMI快恢复二极管S1FD40A180H 型号&#xff1a;S1FD40A180H 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 特性&#xff1a;大功率、快恢复二极管 正向电流&#xff1a;40A 反向耐压&#xff1a;1800V 恢复时间&#xff1a;<300n…

【全志V3s】SPI NAND Flash 驱动开发

文章目录 一、硬件介绍V3s的启动顺序 二、驱动支持U-Boot驱动主线 Linux 驱动已经支持 三、烧录工具 xfel四、构建U-Boot&#xff08;官方的Uboot&#xff09;先编译一下开始spi nand flash 代码层面的适配修改menuconfig配置ARM architecture配置Support for SPI Nand Flash o…

Windows的远程桌面 Server+frp 配置

前言 通过华为云耀服务器给的优惠&#xff0c;购买了一个镜像实例&#xff0c;用来配置远程桌面服务&#xff0c;采用frp进行内网穿透&#xff0c;云服务环境为Ubuntu22.04。 配置 1.服务器端frp配置 cd /usr/local # 进入默认的程序安装路径 wget clone https://github…

前端VUE---JS实现数据的模糊搜索

实现背景 因为后端实现人员列表返回&#xff0c;每次返回的数据量在100以内&#xff0c;要求前端自己进行模糊搜索 页面实现 因为是实时更新数据的&#xff0c;就不需要搜索和重置按钮了 代码 HTML <el-dialogtitle"团队人员详情":visible.sync"centerDi…

一文了解亚马逊云科技适用于 Amazon Lightsail 的托管数据库

Amazon Lightsail 是亚马逊云科技提供的一种易上手使用、月度价格经济实惠&#xff0c;并包括了计算实例、容器、存储、数据库的虚拟专用服务器。在创建时可以进行业务蓝图选择&#xff0c;可选择包含多种操作系统&#xff08;Linux/Windows 等&#xff09;或操作系统加上典型应…

使用Python来写模拟Xshell实现远程命令执行与交互

一、模块 这里使用的是 paramiko带三方库 pip install paramiko二、效果图 三、代码实现&#xff08;这里的IP&#xff0c;用户名&#xff0c;密码修改为自己对应服务器的&#xff09; import paramiko import timeclass Linux(object):# 参数初始化def __init__(self, ip, us…

vue项目打包_以生产环境prod模式打包_vue-cli-service 不是内部或外部命令,也不是可运行的程序---vue工作笔记0025

打开命令行: 首先执行npm install 不执行会报错: npm run build:prod --scripts-prepend-node-pathauto 然后再这样执行就是以生产环境模式打包了.

leetcode1669. 合并两个链表(java)

合并两个链表 题目描述指针代码演示 题目描述 难度 - 中等 leetcode1669. 合并两个链表 给你两个链表 list1 和 list2 &#xff0c;它们包含的元素分别为 n 个和 m 个。 请你将 list1 中下标从 a 到 b 的全部节点都删除&#xff0c;并将list2 接在被删除节点的位置。 下图中蓝色…

Python实现猎人猎物优化算法(HPO)优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

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 索引实践联合索引最左列原则全值匹配不建议在索引列上做任何操作, 否则索引会失效转而全表扫描尽量使…

2023 ICPC Asia EC网络预选赛第一场赛题

文章目录 2023 ICPC Asia EC Online Qualifier Round 1A Qualifiers Ranking RulesB StringC Multiply Then PlusD TransitivityE Magical PairF Alice and BobG Spanning TreeH Range Periodicity QueryI Pa?sWorDJ Minimum Manhattan DistanceK Minimum Euclidean DistanceL…

Openresty(二十二)ngx.balance和balance_by_lua终结篇

一 灰度发布铺垫 ① init_by_lua* init_by_lua init_by_lua_block 特点: 在openresty start、reload、restart时执行,属于master init 阶段机制&#xff1a; nginx master 主进程加载配置文件时&#xff0c;运行全局Lua VM级别上的参数指定的Lua代码场景&#xff1a; …

一文快速创建前端react项目

目前React是最受欢迎和广泛使用的JavaScript库之一。许多知名的公司和组织都在使用React来构建它们的Web应用程序&#xff0c;包括Facebook&#xff0c;Netflix等。学习好React将会使你能够获得更多的就业机会和职业发展机会。 要快速创建React项目&#xff0c;你可以使用Creat…

记录一次OSSClient使用不当导致的OOM排查过程

首发&#xff1a;公众号《赵侠客》 前言 最近线上有个比较边缘的项目出现OOM了&#xff0c;还好这个项目只是做一些离线的任务处理&#xff0c;出现OOM对线上业务没有什么影响&#xff0c;这里记录一下排查的过程 Dump日志查看 项目配置的主要JVM参数设置如下&#xff1a; …

SAP入门到放弃系列之QM质量检验流程概述

目录 一、流程概述二、操作步骤概述2.1 主数据维护2.2 业务操作 一、流程概述 质量检验流程-Inspection Process Flow,通常由于预先设定的一些规则条件自动触发或者手工触发&#xff0c;例如库存地之间的调拨、生产完工入库检验、采购入库的检验、客户交货前检验等等。另外还有…

GMS地下水数值模拟丨GMS各模块、三维地质模型构建及与MODFLOW耦合、地下水流动数值模拟及报告编制、地下水溶质运移模型、反应性溶质运移等

目录 第一部分 地下水数值模拟理论模块 第二部分 地下水数值模拟数据收集、准备及预处理 第三部分 GMS各模块实践 第四部分 三维地质模型构建及与MODFLOW耦合 第五部分 地下水流动数值模拟及报告编制 第六部分 地下水溶质运移模型 第七部分 反应性溶质运移 更多应用 以…

OpenHarmony ArkTS工程目录结构(Stage模型)

一、应用工程结构 图片来源&#xff1a;OpenHarmony官网 AppScope > app.json5&#xff1a;应用的全局配置信息。 entry&#xff1a;OpenHarmony工程模块&#xff0c;编译构建生成一个HAP包。 src > main > ets&#xff1a;用于存放ArkTS源码。 src > main > …

昔日顶流VC宠儿,如今“流血”上市!

今年全球最大IPO安谋控股&#xff08;Arm Holdings&#xff09;成功上市后&#xff0c;美国的IPO市场正在被激活。美国最大的杂货配送平台Instacart近日更新了招股书&#xff0c;将IPO目标价从原来的26-28美元每股上调至28-30美元&#xff0c;对应公司估值约77亿美元-82.8亿美元…

SpringSecurity 核心组件

文章目录 SpringSecurity 结构组件&#xff1a;SecurityContextHolder组件&#xff1a;Authentication组件&#xff1a;UserDetailsService组件&#xff1a;GrantedAuthority组件总结 SpringSecurity 结构 在SpringSecurity中的jar分为4个&#xff0c;作用分别为 jar作用spri…