docker pull mongo

docker run --name mongodb -p 27017:27017 -v /mydata/mongodb/data:/data/db  -d mongo --auth
# --name :指定容器名
# -p :指定容器暴露端口,宿主机端口:容器内端口
# -v :指定容器存储卷,宿主机目录:容器内目录
# -d :设置容器为后台运行,后面的mongo为镜像名
# --auth :开启密码授权访问
docker ps # 查看刚创建的容器
[root@myhost ~]# docker exec -it mongodb mongo admin

> db.createUser({ user:'liuwei',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]})
Successfully added user: {
    "user" : "liuwei",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        },
        "readWriteAnyDatabase"
    ]
}
> db.auth('liuwei', '123456')
1
>

---------------------看起来比较好------------------- 
[root@localhost ~]# docker run -d -p 27017:27017 --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456 -v /mydata/mongodb/data:/data/db mongo

docker exec -it mongodb mongo admin
db.auth("admin","123546)


db.createUser({ user:'liuwei',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]})


Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

mongo备份还原

1,docker exec -it <你的MongodDB容器名> /bin/bash

2,容器中执行

mongodump -h 127.0.0.1 --port 27017 -u=用户名 -p=密码 -d test -o /dump

参数 作用  
-h host
--port 端口
-d 指定数据库
-o 指定备份到哪个目录,不指定应该是直接备份到根目录的/dump文件夹
-u 用户名
-p 密码

系统备份成功会在/home/dump目录下自动生成一个数据库名的文件夹/test,里面是全部Collection备份的bson文件

3,容器中执行   tar -zcvf test.tar.gz /dump/test

4,从容器复制到宿主

docker cp <你的MongodDB容器名>:/dump/test.tar.gz /home

5,从宿主机到容器

1)进入docker mongodb容器:docker exec -it mymongo /bin/sh

2)在docker容器新建mongodb数据要导入的目录,mkdir -p /opt/mongodbBack/

3)docker cp linux备份mongodb的数据文件(不是文件夹)  mymongo(容器名称或id):/opt/mongodbBack/

6,还原备份

进入docker mongodb容器:docker exec -it mymongo /bin/sh

        mongorestore -h IP:port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径
        --drop:先删除所有的记录,然后恢复.【drop慎用】
       docker exec -it <containerName>/<containerId>  mongorestore -h IP:port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径
        # 执行命令恢复   
         docker exec -it mymongo mongorestore -h 127.0.0.1:27017 -u admin -p admin123456 -d admin --dir /data/backup/admin

---------------------------------springboot--------------------------

单数据源

spring.data.mongodb.field-naming-strategy=org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy

多数据源

@Configuration
public class EcgMongodbDatasource { @Primary
@Bean(name = "ecgMongodbProperties")
@ConfigurationProperties(prefix="spring.data.mongodb.testmongodb")
public MongoProperties ecgMongodbProperties() {
return new MongoProperties();
} @Primary
@Bean(name = "ecgMongodbTemplate")
public MongoTemplate ecgMongodbTemplate(){
MongoDbFactory mongoDbFactory=new SimpleMongoClientDbFactory(ecgMongodbProperties().getUri());
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
MongoMappingContext mongoMappingContext=new MongoMappingContext();
//下划线转驼峰
mongoMappingContext.setFieldNamingStrategy(new SnakeCaseFieldNamingStrategy());
MongoConverter mongoConverter = new MappingMongoConverter(dbRefResolver,mongoMappingContext);
return new MongoTemplate(mongoDbFactory,mongoConverter);
}
}

不添加class字段在文档库

@Configuration
public class ApplicationReadyListener implements ApplicationListener<ContextRefreshedEvent> { @Resource
MongoTemplate mongoTemplate; @Override
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
MongoConverter converter = mongoTemplate.getConverter();
if (converter.getTypeMapper().isTypeKey("_class")) {
((MappingMongoConverter) converter).setTypeMapper(new DefaultMongoTypeMapper(null));
}
}
}
 

mongodb---docker的更多相关文章

  1. mongodb+docker数据卷实现数据持久化

    # 拉取镜像docker pull mongo:4.0.22# 启动容器,挂载本地目录 docker run -itd --name mongo -p 27017:27017 -v $PWD/mong ...

  2. Docker入门(二)在docker使用MongoDB

      本文将介绍如何在docker中使用MongoDB.   如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还 ...

  3. Docker 安装 mongoDB(五)

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

  4. 使用 mongodb 的 Docker Image 快速上手系列 lab

    Docker 主要的概念 Dockerfile => 用來產生 docker image 用的(介紹) Image => 可以用來產生 docker container Container ...

  5. [Docker] Linking Node.js and MongoDB Containers

    To do communcation between containers, we need to do link between containers. 1. Run a container wit ...

  6. docker node项目 连接mongodb

    在弄docker部署node项目的时候遇到了连接mongdb的问题,记录一下问题解决办法 一.Docker 安装 MongoDB 1.查找Docker Hub上的mongo镜像 [root@VM_49 ...

  7. Docker+Mongodb

    原文:Docker+Mongodb docker search mongodb docker run -d -p 2701:27017 -v /usr/mongodb/data:/data/db  - ...

  8. 开启docker中的mongodb认证授权

    前言: 开启MongoDB服务后,默认是没有权限验证的.直接通过IP加端口就可以远程访问数据库,并对数据库进行任意操作.下面介绍一下如何开启docker中MongoDB的权限认证. 安装完MongoD ...

  9. 云服务器配置 docker java mysql mongodb redis nginx 环境

    磁盘挂载 fdisk -l #查看磁盘列表 mkfs.ext4 /dev/vdb #格式化磁盘 mount /dev/vdb /data #挂载磁盘在/data echo '/dev/vdb /dat ...

  10. 使用docker创建mongodb

    1.创建 MongoDB 数据卷 docker volume create mongo_data_yapi 2.启动 MongoDB docker run -d --name mongo-yapi - ...

随机推荐

  1. zk单机集群安装

    参考:https://www.cnblogs.com/leeSmall/p/9563547.html zk单机集群安装 cd /usr/local 下载 wget http://mirror.bit. ...

  2. Cadence Allegro创建盲埋孔

    1.首先创建两个常规过孔,文件名分别为Via10d4.Via16d8. 2.打开PCB Editor,然后选择菜单Setup -> B/B ViaDefinitions -> Define ...

  3. SSH远程服务器时报错 /bin/bash : Permission denied

    SSH远程服务器时报错 /bin/bash : Permission denied 今日接到用户那边的报障,/bin/bash : Permission denied报错,用户使用的是具有sudo权限 ...

  4. Centos 7 安装RabbitMq 3.10.7

    1:准备工作 rabbitmq官网查看erlang和rabbitmq的版本关联关系,这里选择 erlang版本:otp_src_25.0  rabbitmqserver版本:3.10.7 官网下载对应 ...

  5. c++基础: uint8_t uint16_t uint32_t uint64_t size_t ssize_t数据类型

    https://blog.csdn.net/lzx_bupt/article/details/7066577 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个 ...

  6. beanshell脚本构造生成随机大小的文件

    文件下载地址:链接: https://pan.baidu.com/s/1wum8hfBeLMipdtQlqysp8A?pwd=8e7r 提取码: 8e7r #!/bin/bash -e # sh fi ...

  7. /usr/bin/install: cannot create regular file `/usr/local/jpeg6/include/jconfig.h'

    出现下列异常: /usr/bin/install -c -m 644 jconfig.h /usr/local/jpeg6/include/jconfig.h /usr/bin/install: ca ...

  8. jquery 操作表格 jQuery操作表格(table)的常用方法、技巧汇总

    以下列出13个jQuery操作table常用到的功能: 1.鼠标移动行变色 $('#table1 tr').hover(function(){ $(this).children('td').addCl ...

  9. 【stm32】的PWM外设|学习笔记

    PWM简单理解就是生成PWM方波,主要可控的参数有周期,占空比,极性. stm32内置PWM生成器,我想应该是用TIM加比较器来实现的吧,那么如何实现stm32输出PWM波呢? 一.得知道那些IO可以 ...

  10. windows下rabbitmq启动报错--distribution port 25672 in use by another node: rabbit@DESKTOP-LLPGVVE

    最近公司有需求需要用到rabbitmq,因为之前习惯用的都是activemq,所以要临时学习一下,捣鼓这个rabbitmq.想着先在本地捣鼓测试一下,然后按照这个博主分享的安装方式进行安装. http ...