Docker安装MongoDB(Linux版)

news2024/12/22 9:13:45

文章目录

  • 前言
  • 一、Docker环境的准备
    • 1.安装依赖
    • 2.安装Docker
  • 二、使用Docker安装MongoDB
    • 1.mongo版本选取
    • 2.拉取合适的镜像
    • 3.宿主机创建MongoDB需要挂载的文件夹
    • 4.第一次无认证创建mongo用户
    • 5.启动需要认证的mongo容器
  • 问题汇总
  • 总结


前言

本文章主要介绍在Centos系统,使用Docker安装MongoDB。如果你已经有docker环境,请直接跳转到安装步骤。


一、Docker环境的准备

1.安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2.安装Docker

2.1 搜索docker可安装的版本

sudo yum list available | grep docker

在这里插入图片描述
2.2 安装最新版本的docker

sudo yum insatll docker

2.3 检查安装成功

sudo docker --version

在这里插入图片描述
2.4 启动docker

sudo systemctl start docker

二、使用Docker安装MongoDB

1.mongo版本选取

查看mongo的可用版本

sudo docker search mongo

在这里插入图片描述

2.拉取合适的镜像

2.1 直接拉取最新版本的话使用命令sudo docker pull mongo:latest;本次拉取的是mongo:4.4.8

sudo docker pull mongo:4.4.8

2.2 镜像拉取完成后,使用命令sudo docker images查看镜像
在这里插入图片描述

3.宿主机创建MongoDB需要挂载的文件夹

创建存放mongodb配置信息、数据信息

sudo mkdir -p /matrix/data/mongodb/configdb
sudo mkdir -p /matrix/data/mongodb/db

4.第一次无认证创建mongo用户

背景知识:几个命令参数的详细解释如下

-p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务

-v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录

--name 为设置该容器的名称

-d 设置容器以守护进程方式运行

4.1 创建mongodb容器

docker run --name mongodb -p 27017:27017 \
-v /matrix/data/mongodb/configdb:/data/configdb/ \
-v /matrix/data/mongodb/db/:/data/db/ \
--privileged=true \
-d mongo:4.4.8 

4.2 进入容器

docker exec -it mongodb bash

4.3 连接mongo

mongo --host 127.0.0.1 --port 27017

4.4 创建用户

use admin;
db.createUser({ user: "root", pwd: "12345678", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

退出 exit,退出容器,回到宿主机

4.5 停止并删除刚刚启动的mongodb容器

docker stop mongodb
docker rm mongodb

5.启动需要认证的mongo容器

5.1 创建mongodb容器

docker run --name mongodb -p 27017:27017 --restart=always \
-v /matrix/data/mongodb/configdb:/data/configdb/ \
-v /matrix/data/mongodb/db/:/data/db/ \
--privileged=true \
-d mongo:4.4.8 --auth

5.2 进入mongodb的容器,验证mongo安装成功

mongo -u root -p 12345678 --authenticationDatabase "admin"

在这里插入图片描述


问题汇总

  1. 外部连接mongo超时、拒绝等网络问题
    答:放通防火墙27017的端口;
    检查HOSTIP(宿主机上就使用本地IP;外部就使用公网IP)
  2. 操作mongo库失败
    答:需要给mongo用户增加对应的库权限。

总结

好的,以上就是mongo安装的步骤,欢迎大家指导留言,大家的指导就是我不断改进的动力。

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

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

相关文章

ROS | 用IMU实现航向锁定

基本原理: 引入速度控制模块: /cmd_vel 设置目标角度,计算偏移差值 然后消息传递在z轴移动的角度 代码实现: C: CPP文件还需要编辑CMAKE文件 Python: Python文件需要给于权限:chmod x imu_node.py

【Muduo】三大核心之Poller、EPollPoller

Poller 在Muduo中,Poller负责基于IO多路复用机制进行IO事件监听和处理的组件,作为EPollPoller的基类,为后者提供了与PollPoller统一的IO复用接口,并且声明了一个关键的创建派生类的成员函数: static Poller *newDefa…

NDIS小端口驱动(五)

在需要的时候,我们也许需要NDIS微型端口程序信息,下面会从多个方面来讨论如何查询NDIS微型端口驱动。 查询无连接微型端口驱动程序 若要查询无连接微型端口驱动程序维护的 OID,绑定协议调用 NdisOidRequest 并传递 一个NDIS_OID_REQUEST 结…

OSPF多区域组网实验(华为)

思科设备参考:OSPF多区域组网实验(思科) 技术简介 OSPF多区域功能通过划分网络为多个逻辑区域来提高网络的可扩展性和管理性能。每个区域内部运行独立的SPF计算,而区域之间通过区域边界路由器进行路由信息交换。这种划分策略适用…

线性代数(二)

1.标量 标量也叫0D张量,一个标量就是一个数,它只有大小,没有方向。 import torch x torch.Tensor(3) print(x)2.向量 向量也叫1D张量。向量只有一个轴,沿着行的方向,或者沿着列的方向。向量一般指列向量。 import…

光伏储能EMS 风电智慧能量管理系统 -安科瑞王盼盼

安科瑞18721098782王盼盼 一:储能 EMS(Energy Management System) 储能 EMS:储能 EMS 是一个综合管理系统,用于整体管理和优化储能系统的运行。它基于电力系统的需求和需求响应,通过控制和协调储能设备的…

WPF中DataGrid实现多选框功能

1. 效果图 2. Model建立 public class RstModelCheck : ObservableObject {//为了显示Head1和Head2.而且View中绑定属性而非字段,否则不能显示。public string? Name { get; set; } public bool PlatenAll {get > _platenAll;set{SetProperty(ref _platenAl…

【代码随想录】【算法训练营】【第15天】 [102]二叉树的层序遍历 [226]翻转二叉树 [101]对称二叉树

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 15,一周中最困难的周三~ 题目详情 [102] 二叉树的层序遍历 题目描述 102 二叉树的层序遍历 解题思路 前提:二叉树的层级遍历 思路:利用队列的“先进先出…

C#利用WinForm实现可以查看指定目录文件下所有图片

目录 一、关于Winform 二、创建应用 三、功能实现 四、代码部分 一、关于Winform Windows 窗体是用于生成 Windows 桌面应用的 UI 框架。 它提供了一种基于 Visual Studio 中提供的可视化设计器创建桌面应用的高效方法。 利用视觉对象控件的拖放放置等功能,可…

信捷PLC 编程常用寄存器及编程技巧说明

最近在用信捷的PLC,分享下常用的寄存器和编程技巧说明。 技巧主要包括以下几个方面: 充分规划各个功能区:在编写程序时,需要充分规划各个功能区。 考虑伺服步进功能和气缸手动功能的应用,手动操作时,可…

C语言 | Leetcode C语言题解之第107题二叉树的层序遍历II

题目: 题解: int** levelOrderBottom(struct TreeNode* root, int* returnSize, int** returnColumnSizes) {int** levelOrder malloc(sizeof(int*) * 2001);*returnColumnSizes malloc(sizeof(int) * 2001);*returnSize 0;if (!root) {return level…

个人感觉对Material设计有用的几个网址

(一) Modular and customizable Material Design UI components for Android GIthub: material-components-android (二) 学习Material设计 Material Design (三) 用于创建Material主题,支持导出多种格式 material-theme-builder

Web API——获取DOM元素

目录 1、根据选择器来获取DOM元素 2.、根据选择器来获取DOM元素伪数组 3、根据id获取一个元素 4、通过标签类型名获取所有该标签的元素 5、通过类名获取元素 目标:能查找/获取DOM对象 1、根据选择器来获取DOM元素 语法: document.querySelector(css选择…

一维前缀和[模版]

题目链接 题目: 分析: 因为要求数组中连续区间的和, 可以使用前缀和算法注意:下标是从1开始算起的, 真正下标0的位置是0第一步: 预处理出来一个前缀和数组dp dp[i] 表示: 表示[1,i] 区间所有元素的和dp[i] dp[i-1] arr[i]例如示例一中: dp数组为{1,3,7}第二步: 使用前缀数…

css特性(继承性、层叠性)

1.继承性 可以继承的常见属性(文字控制属性都可以继承) ps:可以通过调试器查看是否能够继承 注意:a标签的color会继承失效;h系列标签的font-size会继承失效 2.层叠性 后面的样式会覆盖前面的样式 给同一个标签设置不同的样式…

酷开科技以内容为契机,酷开系统向消费者需求的深度挖掘迈进一步

酷开系统还拥有强大的内容资源和推荐算法,能够根据消费者的兴趣爱好为其提供个性化的推荐服务。无论是电影、电视剧、综艺节目,还是新闻、体育、娱乐资讯,酷开系统都能帮助大家快速找到感兴趣的内容,并且通过智能推荐算法不断优化…

vue3插槽solt 使用

背景增加组件的复用性,个人体验组件化还是react 方便。 Vue插槽solt如何传递具名插槽的数据给子组件? 一、solt 原理 知其然知其所以然 Vue的插槽(slots)是一种分发内容的机制,允许你在组件模板中定义可插入的内容…

4月粽子行业线上市场销售数据分析

随着节日庆祝常态化,消费者对礼物消费的态度发生变化,这会影响粽子的消费模式和市场需求。再加上技术进步,如速冻粽子和真空粽子的推广,也极大地推动了粽子行业的发展,使得产品更易于保存和运输,从而满足了…

Spark-RDD-持久化详解

Spark概述 Spark-RDD概述 1.持久化与序列化的关系 在Spark中,持久化(Persistence)和序列化(Serialization)是两个关键概念,它们在RDD处理过程中起着重要作用,并且有一定的关联: &a…

Windows安装mingw32/w64

1.下载 MinGW-w64 WinLibs - GCCMinGW-w64 compiler for Windows Releases niXman/mingw-builds-binaries (github.com) MinGW-w64、UCRT 和 MSVCRT 是 Windows 平台上常用的 C/C 运行库,它们有以下不同点: MinGW-w64:是一个基于 GCC 的…