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

Docker安装MongoDB(Linux版)

文章目录

  • 前言
  • 一、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.lryc.cn/news/354729.html

相关文章:

  • 【设计模式】JAVA Design Patterns——Commander(指挥官模式)
  • 解决vue3项目vite打包忽略.vue扩展名
  • Vue基础(数据绑定、export使用)
  • 【传知代码】基于图神经网络的知识追踪方法(论文复现)
  • Vue与React、Angular的比较
  • LINQ(二) —— 流式语句
  • 怎么查看MySQL服务的最大连接,已经使用的连接数?怎么配置最大连接数?
  • 微信小程序毕业设计-跑腿系统项目开发实战(附源码+演示视频+LW)
  • stm32通过esp8266连接阿里云平台代码讲解
  • 突发!某大厂机房掉电,MySQL数据库无法启动,紧急恢复过程...
  • SpringCloudAlibaba:6.2RocketMQ的普通消息的使用
  • vue+echart :点击趋势图中的某一点或是柱状图,出现弹窗,并传输数据
  • 2024年上半年软考什么时候查成绩?附查询流程
  • css3实现0.5px边框
  • U-Net网络
  • 不拍视频,不直播怎么在视频号卖货赚钱?开一个它就好了!
  • 【vue-5】双向数据绑定v-model及修饰符
  • [STM32-HAL库]AS608-指纹识别模块-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C8T6
  • 【java程序设计期末复习】chapter4 类和对象
  • ios:Command PhaseScriptExecution failed with a nonzero exit code
  • 《拯救大学生课设不挂科第四期之蓝桥杯是什么?我是否要参加蓝桥杯?选择何种语言?如何科学备赛?方法思维教程》【官方笔记】
  • 数据挖掘案例-航空公司客户价值分析
  • 决策树与机器学习实战【代码为主】
  • 从感知机到神经网络
  • 【HMGD】STM32/GD32 I2C DMA 主从通信
  • leecode 226 翻转二叉树、101 对称二叉树、104 二叉树的最大深度
  • Redux基础
  • 国外目标公司的任何一个联系人也许都有意义
  • 因为本地证书太旧或不全导致的 HTTPS 访问失败问题20240520
  • Lua获取表的长度