前言

因为博主在使用docker安装mongodb并挂载时,发现在网上搜了好多都是以前版本的mongodb,并且按照他们操作总是在进入mongodb出问题,博主搞了好久终于弄好了,故写下博客,供有需要的的人参考。博主安装和官网有些区别,想看官网快速搭建的——>[Mongodb官网快速指南]<——(https://www.mongodb.com/docs/manual/tutorial/install-mongodb-community-with-docker/ "Mongodb官网快速指南")废话不多说开搞!

一、安装mongodb

1.1查看版本(不想看版本的,这一步可以跳过)

docker search mongo



1.2拉取mongodb镜像

# 默认下载最新版本(也就是latest)
docker pull mongo
# 上面也可以写成
docker pull mongo:latest ##上面代码不行,提示你没权限,你就按照提示这上面代码前sudo(使用的账户是root权限)
sudo docker pull mongo



1.3.查看本地已下载镜像,并查看是否下载mongo镜像

docker image ls -a



1.4.在宿主机上挂载并运行

# 1.4.1首先创建一个要挂载的文件(这里-p后面的文件地址就写你自己想要创建的)
mkdir -p /data/docker_volume/mongo/data # 1.4.2.然后运行容器并挂载
## 需要验证
docker run -p 27017:27017 --name mymongo -v /data/docker_volume/mongo/data:/data/db -d mongo --auth
##不需要验证
docker run -p 27017:27017 --name mymongo -v /data/docker_volume/mongo/data:/data/db -d mongo
# 1.4.3.查看是否运行
docker ps -a

在上面的命令中,几个命令参数的详细解释如下:

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

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

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

-d 设置容器以守护进程方式运行(后台运行)

–auth 需要验证就加,不需要验证,就去掉。默认mongodb是不使用用户认证



1.5.设置mongodb随docker自启动(这一步可加可不加,看你个人)

docker update mymongo --restart=always

注意:这里的mymongo是容器的名字(上面1.4.2哪里运行容器--name后起的名字),不是镜像的名字。

二、创建其数据库的用户名和密码

①如果你不需要设置用户和密码,下面就不用看了,直接可以连接mongo了(这种就像是裸奔不安全)
②如果你在上面 容器运行挂载选择需验证方式(在1.4.2处)

2.2.1 首先 登录mymongo容器,进入admin数据库

docker exec -it mymongo mongosh admin



2.2.2 然后 按照 2.3.4步骤往下走

③其余的就往下看

2.3.1.进入mongo容器

docker exec -it mymongo /bin/bash



注意:这里的mymongo是容器的名字,不是镜像的名字。(忘记容器名字,可使用docker ps -a 查看容器名)



2.3.2.进入mongosh中

# 进入mongo shell
mongosh

注:mongosh 6.0版本之后使用,mongo 6.0版本之前使用,博主就是在这里出问题的,博主安装最新mongodb版本,但是使用的是 mongo 所以一直出现问题:bash: mongo: command not found



2.3.3.进入admin数据库

use admin



2.3.4 创建一个用户,mongodb默认没有用户

# 1.这里创建用户名为root,密码为mongo2023,角色(该用户的权限)为root,数据库为admin(你们按照你们自己的设置)
# 用户名:root,密码:mongo2023,角色:root,数据库:admin db.createUser({user:'root',pwd:'mongo2023',roles:[{role:'root',db:'admin'}]}) # 2.认证登录db.auth('用户名','密码'),打印1则代表认证通过
db.auth('root','mongo2023')



到这里就完成了创建用户和设置密码,如果要退出 Ctrl+D 或者 exit 退出mongodb

三、客户端连接mongodb

如果刚才的安装是在服务器上,想远程连接mongodb还请先查看服务器端口27017放行(对外开放这个端口)

在centos7上使用 docker安装mongodb挂载宿主机以及创建其数据库的用户名和密码(最新版本)的更多相关文章

  1. 在centos7上用docker安装宝塔面板

    在centos7上用docker安装宝塔面板   1. [root@web01 ~]# systemctl enable docker 2. [root@web01 ~]# docker pull c ...

  2. docker 安装redis , 让宿主机可以访问

    1, docker 拉去最新版本的redis docker pull redis #后面可以带上tag号, 默认拉取最新版本 2, docker安装redis container 安装之前去定义我们的 ...

  3. docker 启动mysql 挂载宿主机目录

    在使用docker run 运行镜像获取容器时,有些容器会自动产生一些数据,为了这些数据会因为container (容器)的消失而消失,保证数据的安全,比如mysql 容器在运行中产生的一些表的数据, ...

  4. MongoDB如何设置权限(类似关系型数据库的用户名和密码)

    MongoDB 缺省是没有设置鉴权的,业界大部分使用 MongoDB 的项目也没有设置访问权限.这就意味着只要知道 MongoDB 服务器的端口,任何能访问到这台服务器的人都可以查询和操作 Mongo ...

  5. docker安装mysql挂载宿主本地目录资源后无法启动的问题

    可能是权限问题,添加--privileged=true参数: docker run -p : --name zsmysql -v $PWD/data:/var/lib/mysql -v $PWD/lo ...

  6. Linux平台安装MongoDB及使用Docker安装MongoDB

    一.Linux平台安装MongoDB MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/downlo ...

  7. Docker 安装 mongoDB(五)

    Docker 安装 mongoDB 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search mongo 2.拉取docker的mongo镜像 ...

  8. Docker01 centos系统安装、centos安装docker、docker安装mongoDB

    1 centos系统安装 本博文是基于 centos6.5 的,利用VMware 虚拟机搭建 centos6.5 系统 1.1 centos6.5资源获取 1.2 安装 1.2.1 新建虚拟机 1.2 ...

  9. MongoDB学习笔记二:使用Docker安装MongoDB

    目录 Docker安装MongoDB Docker给MongoDB设置用户密码 NoSQL Manager for MongoDB连接 为admin赋权限 上一个笔记介绍了Windows下安装Mong ...

  10. 在CentOS7上通过RPM安装实现LAMP+phpMyAdmin过程全记录

    在CentOS7上通过RPM安装实现LAMP+phpMyAdmin过程全记录 时间:2017年9月20日 一.软件环境: IP:192.168.1.71 Hostname:centos73-2.sur ...

随机推荐

  1. Python根目录中没有Scripts文件夹问题

    电脑版本是win10,配置好python的环境变量,确保可以运行python命令. 1.打开cmd命令行输入 python -m ensurepip 2.查看Python根目录下,有没有新生成Scri ...

  2. hexo博客yilia主题_more截断文章_多标签添加

    以下均为自己遇到的问题并加以修改或者纠正. 在文章下方可以使用more语句进行截断,这样博客首页只会出现文章的前面一小部分,看起来很清爽简约 或者 language: zh-CN <!--mor ...

  3. 最为常用的Laravel操作(2)-路由

    基本路由 // 接收一个 URI 和一个闭包 Route::get('hello', function () { return 'Hello, Laravel'; }); // 支持的路由方法 Rou ...

  4. kbuild系统中最简单的目标 -- help(三)

    当你学完help目标后你会发现它与我们的代码基本没有什么直接的关系,仅仅是用来生成kbuild的简短使用说明,但是用它来作为学习掌握kbuild编译系统的开篇,不管是从难度还是学习感受上真的是再适合不 ...

  5. chrome事件循环的自问自答

    chrome事件循环的自问自答 目录 1. 宏任务有哪些? 2. 微任务有哪些? 3. dom渲染是事件循环的一部分么? 4. requestAnimationFrame的回调是宏任务还是微任务? 5 ...

  6. PHPstudy+Xdebug动态调试代码过程中遇到一分钟就超时问题的解决办法

    环境是PhpStorm+Xdebug+WAMP 在实际调试的过程中 碰到了调试还没走完就自动结束的情况 很尴尬 查阅了相关文档资料 找到了解决方法 首先在php.ini中进行修改 我的配置文件地址在 ...

  7. springboot项目图片不显示的问题

    首先确认你的图片路径是对的,maven重新clean,install了,web服务也重启了 那么大概率就是浏览器缓存的原因,因为页面直接用的是缓存的旧数据,所以显示不出来. 在不修改浏览器设置的情况下 ...

  8. JaCoCo助您毁灭线上僵尸代码

    一. 现状·问题 随着需求不断迭代,业务系统的业务代码突飞猛进,在你自豪于自己的代码量产出很高时,有没有回头看看线上真正的客户使用量又有多少呢? 费事费力耗费大量人力成本上线的功能,可能一年没人使用, ...

  9. Java 日志系列:JUL 使用和原理分析

    目录 一. 简介 二.使用 三.日志级别 四.Logger 继承关系 五.配置文件 六.原理解析 一. 简介 JUL 全称 Java util Logging 是 java 原生的日志框架,使用时不需 ...

  10. 如何找到docker容器中的网卡外联的veth pair的另一张网卡

    1.概述 在Docker容器中,每个容器都有一个或多个网络接口(网卡),用于连接容器内部与宿主机或其他容器进行通信.这些网络接口中的一些可能是veth pair,也就是虚拟以太网对,它们以成对的方式存 ...