在centos7上使用 docker安装mongodb挂载宿主机以及创建其数据库的用户名和密码(最新版本)
前言
因为博主在使用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挂载宿主机以及创建其数据库的用户名和密码(最新版本)的更多相关文章
- 在centos7上用docker安装宝塔面板
在centos7上用docker安装宝塔面板 1. [root@web01 ~]# systemctl enable docker 2. [root@web01 ~]# docker pull c ...
- docker 安装redis , 让宿主机可以访问
1, docker 拉去最新版本的redis docker pull redis #后面可以带上tag号, 默认拉取最新版本 2, docker安装redis container 安装之前去定义我们的 ...
- docker 启动mysql 挂载宿主机目录
在使用docker run 运行镜像获取容器时,有些容器会自动产生一些数据,为了这些数据会因为container (容器)的消失而消失,保证数据的安全,比如mysql 容器在运行中产生的一些表的数据, ...
- MongoDB如何设置权限(类似关系型数据库的用户名和密码)
MongoDB 缺省是没有设置鉴权的,业界大部分使用 MongoDB 的项目也没有设置访问权限.这就意味着只要知道 MongoDB 服务器的端口,任何能访问到这台服务器的人都可以查询和操作 Mongo ...
- docker安装mysql挂载宿主本地目录资源后无法启动的问题
可能是权限问题,添加--privileged=true参数: docker run -p : --name zsmysql -v $PWD/data:/var/lib/mysql -v $PWD/lo ...
- Linux平台安装MongoDB及使用Docker安装MongoDB
一.Linux平台安装MongoDB MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/downlo ...
- Docker 安装 mongoDB(五)
Docker 安装 mongoDB 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search mongo 2.拉取docker的mongo镜像 ...
- Docker01 centos系统安装、centos安装docker、docker安装mongoDB
1 centos系统安装 本博文是基于 centos6.5 的,利用VMware 虚拟机搭建 centos6.5 系统 1.1 centos6.5资源获取 1.2 安装 1.2.1 新建虚拟机 1.2 ...
- MongoDB学习笔记二:使用Docker安装MongoDB
目录 Docker安装MongoDB Docker给MongoDB设置用户密码 NoSQL Manager for MongoDB连接 为admin赋权限 上一个笔记介绍了Windows下安装Mong ...
- 在CentOS7上通过RPM安装实现LAMP+phpMyAdmin过程全记录
在CentOS7上通过RPM安装实现LAMP+phpMyAdmin过程全记录 时间:2017年9月20日 一.软件环境: IP:192.168.1.71 Hostname:centos73-2.sur ...
随机推荐
- DLL注入-Windows消息钩取
0x01 钩子 钩子,英文Hook,泛指钓取所需东西而使用的一切工具.后来延伸为"偷看或截取信息时所用的手段或工具". 挂钩:为了偷看或截取来往信息而在中间设置岗哨的行为 钩取:偷 ...
- 2023icpc大学生程序设计竞赛-zx
第一次出市打线下,洛阳师范风景不错,就是比赛的筹备有点波折.题目在这几次xcpc省赛算是比较难的.开始一个二维前缀和板子以及一个小贪心还是顺利拿下,后面那个dp一直是我们的短板wa了几发才过,后面就是 ...
- 西门子HMI切换页面时的指示功能
怎么样才能做到像这样按下切换界面的按钮,切换过去之后对应的切换按钮还进行高亮指示呢? 首先我们要先新建模板,把我们的画面拖拽到模板里就会形成按钮 在画面的"属性"中 在属性中选上我 ...
- 文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题
文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题 七.试说明如何使用优先队列来实现一个先进先出队列,以及如何使用优先队列来实现栈(队列和栈的定义见 10.1 节.) ...
- Cannot use v-for on stateful component root element because it renders multiple elements.
<template name:trailerStars> <image v-for="yellow in yellowScore" src="../st ...
- python教程 入门学习笔记 第4天 数据类型 获取数据类型 字符串拼接
数据类型 1.能直接处理的基本数据类型有5个:整型.浮点型.字符串.布尔值.空 1)整型(int)=整数,例如0至9,-1至-9,100,-8180等,人数.年龄.页码.门牌号等 没有小数位的数字,是 ...
- 【解惑】介绍.net中的DataTable的AcceptChanges方法
DataTable.AcceptChanges方法是一个用于DataTable对象的方法,它将所有对DataTable进行的更改标记为已接受.这意味着所有新增.修改和删除的行都将被标记为DataRow ...
- Vue 框架下提升加载速度的一些实战经验分享
现在前端的框架有很多,甚至两只手已经数不过来,当然也完全没必要全部都学,还是应该深入的学习一两个被广泛使用的就好.其实我和大部分同学的想法一致,认为最值得我们深究的还是主流的 Vue 和 React. ...
- pycharm+anaconda的关联
Pycharm+anaconda的关联 关联好处:Pycharm和anaconda关联后,pycharm可以直接调用anaconda中已安装好的模块,而anaconda里安装和卸载模块都比较方便. 关 ...
- 详情讲解canvas实现电子签名
签名的实现功能 我们要实现签名: 1.我们首先要鼠标按下,移动,抬起.经过这三个步骤. 我们可以实现一笔或者连笔. 按下的时候我们需要移动画笔,可以使用 moveTo 来移动画笔. e.pageX,e ...