在Docker中安装MongoDB

 docker run -p 27017:27017 -v /data/mongodb:/data/db --name mongodb -d mongo --auth

1.版本选取

访问mongodb的镜像仓库地址:https://hub.docker.com/_/mongo?tab=tags&page=1
 
这里选取最新版本进行安装,如果想安装其他的可用版本,可以使用命令“docker search mongo”来查看
 

2.拉取最新版本镜像

这里执行命令"sudo docker pull mongo:latest" 拉取最新版的mongodb镜像文件
 
等待镜像拉取完成后,通过命令"sudo docker images"查看下拉取的镜像,可以看到,已经成功拉取到了本地
 

3.开始运行

创建一个文件夹,用作mongodb的数据目录挂载
 
运行启动命令“docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo”
在上面的命令中,几个命令参数的详细解释如下:
-p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务
-v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
--name 为设置该容器的名称
-d 设置容器以守护进程方式运行
 
通过命令“docker ps”查看容器启动运行情况
可以看到mongo容器已经成功运行起来了
 

4.使用客户端工具Studio 3T连接mongo

studiot 3T下载地址:https://studio3t.com/download/
 
 
 

5.创建mongo用户

可以看到一个空的mongo数据库,有一个不太完美的地方在于我们的mongo没有任何账户密码,在裸奔,下面我们执行以下语句,创建一个管理员用户,
1
2
3
4
5
db.createUser({
user: 'admin',
pwd: 'Aa123456',
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}); 
 

6.指定auth重新运行服务

创建完用户我们就要重新启动mongo服务,并且指定auth
删除已经运行的mongo容器:docker rm -f mongodb
指定验证启动mongo容器:docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo --auth
也就是在之前的启动命令后面加上 --auth:需要密码才能访问容器服务
 
此时强行访问,可以看到提示,没有授权
 
这里我们在连接的地方指定一下账户密码
 
再来查询,已经正确查询出来之前添加的用户信息
 
 

7.创建一个业务数据库和对应的读写账户

1
2
3
4
5
6
use demo_db;
db.createUser({
  user: 'dev',
  pwd: 'Aa123456',
  roles: [ { role: "readWrite", db: "demo_db" } ]
  });

 

 
然后用这个dev账号来登录

角色授权

角色授权分两种,一种是直接在当前库中创建用户并授予相关权限。如admin库中创建admin用户。另一种情况是

将在admin中创建的用户授予操作其他库的权限,相关授权命令如下:

授予角色:

db.grantRolesToUser("userName", [ { role:"<role>", db: "<database>"} ]) 
 

取消角色:

db.grantRolesToUser("userName", [ { role:"<role>", db:"<database>"} ]) 
 

下面我们在admin库中执行以下命令:

  1.  
    db.grantRolesToUser("admin", [ { role:"dbOwner", db:"test"} ]) ;
  2.  
    ##admin 指的是用户名 test 指的要授权的数据库
 

在Docker中安装MongoDB的更多相关文章

  1. 在Docker中安装和部署MongoDB集群

    此文已由作者袁欢授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Docker中安装mongodb 采用的mongodb镜像:https://registry.hub.doc ...

  2. 在docker中安装mysql

    #!/bin/sh # 安装docker # 在docker中安装mysql # 解决了docker容器中无法输入中文的问题 ##########################安装docker # ...

  3. 在Docker中安装配置Oracle12c并实现数据持久化

    在Docker中安装配置Oracle12c并实现数据持久化 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢 eric@userver:~$ docker pull sath89/oracl ...

  4. 在Docker中安装.NET Core(使用命令行工具)

    在Docker中安装.NET Core目前共有两种方法:1,使用命令行工具安装2,使用VS2017来安装 本文主要介绍使用命令行工具来安装: 1,安装Docker(如果本机已经有Docker环境,可以 ...

  5. docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目

    docker微服务部署之:三,搭建Zuul微服务项目 1.Centos7安装Docker 详见:Centos7安装Docker 2.Docker中安装jdk1.8 详见:使用Docker构建jdk1. ...

  6. docker中安装宝塔面板

    我的电脑是win10,安装的virtualbox其上装的ubutun14,ubutun也安装了docker,今天我补充一个完整的操作流程.怎么在docker中安装宝塔面板?先打个岔,这些命令总是记不住 ...

  7. 在Windows操作系统中安装MongoDB

    如何在Windows操作系统中安装MongoDB: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ 启动Mon ...

  8. docker中安装宝塔面板教程

    本人电脑是win10,安装的virtualbox,装的centos7.2,在centos7.2装了docker,这个比较简单,网上一大堆教程,今天说一下装好了docker之后怎么在docker中安装面 ...

  9. Linux或Docker里安装minio / Docker中安装h5ai

    此文为单节点搭建操作 Linux中搭建minio 对象存储服务器 下载minio安装包 wget https://dl.minio.io/server/minio/release/linux-amd6 ...

随机推荐

  1. 同事写了一个疯狂的类构造器,我要疯了,Builder 模式都不会么?!

    疯狂的类构造器 最近栈长在做 Code Review 时,发现一段创建对象的方法: Task task = new Task(112, "紧急任务", "处理一下这个任务 ...

  2. IDEA关于-javaagent中文路径导致无法debug的初步解决方案

    IDEA明明是装在D盘的纯英文路径,而且java的相关环境变量全部是在英文路径,结果还是因为中文路径的问题导致无法debug.仔细观察,发现这个中文路径是作为java的-javaagent的参数输入的 ...

  3. Selenium3自动化测试【14】元素定位之ID

    元素定位 Selenium需要告知其如何去定位元素,来模拟用户动作.例如要操作Bing搜索页. 首先要找到搜索框与搜索按钮: 通过键盘输入检索的关键字: 用鼠标单击搜索按钮: 提交搜索请求. Sele ...

  4. 测开需要熟悉的Linux基本知识

    安装软件-编辑 yum -y install 安装软件-上传下载 yum -y install lrzsz 查看当前目录 ls 查看所有 ls -a 创建一个文件夹 mkdir Foldername ...

  5. 反病毒攻防研究第006篇:简单木马分析与防范part2

    一.前言 一般来说,木马是既有客户端也有服务器端的.上次讨论的不过是一种特殊情况,毕竟不是人人都懂得DOS命令,因此现在木马的客户端也都是做成非常直观的界面形式,方便操作.本篇文章会从客户端与服务器端 ...

  6. 病毒木马查杀实战第024篇:MBR病毒之编程解析引导区

    前言 通过之前的学习,相信大家已经对磁盘的引导区有了充分的认识.但是我们之前的学习都是利用现成的工具来对引导区进行解析的,而对于一名反病毒工程师而言,不单单需要有扎实的逆向分析功底,同时也需要有很强的 ...

  7. Win64 驱动内核编程-21.DKOM隐藏和保护进程

    DKOM隐藏和保护进程 主要就是操作链表,以及修改节点内容. DKOM 隐藏进程和保护进程的本质是操作 EPROCESS 结构体,不同的系统用的时候注意查下相关定义,确定下偏移,下面的数据是以win7 ...

  8. ListView 加载数据时 触摸报错

    问题起因: 在做一个从sd卡中加载数据显示在ListView中,由于数据可能比较多,考虑到用户体验,就使用AsyncTask来异步加载,数据一条一条的添加至ListView中. 开始数据比较少的时候, ...

  9. HR:“最喜欢阿里出来的程序员了,技术又好又耐艹!” 我:???

    面试造火箭,进厂拧螺丝?真的是这样吗? 缘起 估计不少同学都是被标题吸引进来的.事先声明,这句话不是我虚构的,而是我实实在在从同事的口中听到的,而且还不止一次. 当时的场景就是很正常的交谈,别人也并没 ...

  10. CentOS7 搭建 Redis 集群

    一.手动搭建 1. 准备节点 节点数量至少为 6 个才能保证组成完整高可用的集群 (1) 目录结构 cluster ├── 9001 │   ├── data │   │   ├── appendon ...