在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. 15个问题告诉你如何使用Java泛型

    摘要:Java泛型其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java ...

  2. 阿里云 RTC QoS 弱网对抗之 LTR 及其硬件解码支持

    LTR 弱网对抗由于需要解码器的反馈,因此用硬件解码器实现时需要做一些特殊处理.另外,一些硬件解码器对 LTR 的实现不是特别完善,会导致出现解码错误.本文为 QoS 弱网优化系列的第三篇,将为您详解 ...

  3. 【Springboot】Springboot自动装配原理

    1.核心注解就是 EnableAutoConfiguration  该注解会激活SpringBoot的自动装配功能: 代码如下: @Target(ElementType.TYPE) @Retentio ...

  4. LNMP环境搭建Wordpress博客

    目录 LNMP架构工作原理 yum源安装 网站源包安装 LNMP是Linux Nginx MySQL/MariaDB  Php/perl/python 的简称,是近些年才逐渐发展起来的构架,发展非常迅 ...

  5. Docker安装ElasticSearch和Kibana

    创建容器elasticsearch docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type= ...

  6. Filter过滤器的基本使用方法

    ProjectDescription Filter的使用 创建类实现javax.servlet.Filter. 重写方法: init(); //过滤器初始化 doFilter(); //过滤请求 1. ...

  7. SpringBoot学习笔记:Spring Data Jpa的使用

    更多请关注公众号 Spring Data Jpa 简介 JPA JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范(JSR ...

  8. 【java框架】SpringBoot(7) -- SpringBoot整合MyBatis

    1.整合MyBatis操作 前面一篇提到了SpringBoot整合基础的数据源JDBC.Druid操作,实际项目中更常用的还是MyBatis框架,而SpringBoot整合MyBatis进行CRUD也 ...

  9. 一个入门级CTF的Reverse

    这道题是XCTF攻防世界上的一道新手入门题目! 年前刚接触逆向时IDA,OD了这些工具都不会用(负基础),当时做这些题的时候觉得挺难(主要是缺少练习,没思路无从下手).现在回头再来看这些题目感觉确实是 ...

  10. Hive 配置项详解

    hive.ddl.output.format: hive的ddl语句的输出格式, 默认是text,纯文本,还有json格式,这个是0.90以后才出的新配置: hive.exec.script.wrap ...