mongodb---docker
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
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的更多相关文章
- mongodb+docker数据卷实现数据持久化
# 拉取镜像docker pull mongo:4.0.22# 启动容器,挂载本地目录 docker run -itd --name mongo -p 27017:27017 -v $PWD/mong ...
- Docker入门(二)在docker使用MongoDB
本文将介绍如何在docker中使用MongoDB. 如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还 ...
- Docker 安装 mongoDB(五)
Docker 安装 mongoDB 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search mongo 2.拉取docker的mongo镜像 ...
- 使用 mongodb 的 Docker Image 快速上手系列 lab
Docker 主要的概念 Dockerfile => 用來產生 docker image 用的(介紹) Image => 可以用來產生 docker container Container ...
- [Docker] Linking Node.js and MongoDB Containers
To do communcation between containers, we need to do link between containers. 1. Run a container wit ...
- docker node项目 连接mongodb
在弄docker部署node项目的时候遇到了连接mongdb的问题,记录一下问题解决办法 一.Docker 安装 MongoDB 1.查找Docker Hub上的mongo镜像 [root@VM_49 ...
- Docker+Mongodb
原文:Docker+Mongodb docker search mongodb docker run -d -p 2701:27017 -v /usr/mongodb/data:/data/db - ...
- 开启docker中的mongodb认证授权
前言: 开启MongoDB服务后,默认是没有权限验证的.直接通过IP加端口就可以远程访问数据库,并对数据库进行任意操作.下面介绍一下如何开启docker中MongoDB的权限认证. 安装完MongoD ...
- 云服务器配置 docker java mysql mongodb redis nginx 环境
磁盘挂载 fdisk -l #查看磁盘列表 mkfs.ext4 /dev/vdb #格式化磁盘 mount /dev/vdb /data #挂载磁盘在/data echo '/dev/vdb /dat ...
- 使用docker创建mongodb
1.创建 MongoDB 数据卷 docker volume create mongo_data_yapi 2.启动 MongoDB docker run -d --name mongo-yapi - ...
随机推荐
- stl关联式容器的接口和实现
红黑树的实现就不再记录了,详情可以去github上面翻翻源代码 set的接口和实现: map的接口和实现: hash_set接口与实现 hash_map接口和实现:
- 前后端分离 基于session的验证码功能实现
前后端分离 基于session的验证码功能实现 1.后端代码 1.1 SessionContextUtils 用于获取session import javax.servlet.http.HttpSes ...
- M1 IntelliJ IDEA2022安装报错解决方法
下载地址:http://pan.jizhouyun.com/s/I3QJVzk3et 报错一:系统权限问题 报错示例: 1.XX已损坏,打不开:您应该将它移到废纸娄/已损坏 2.打不开:您应该推出磁盘 ...
- php json_encode 斜杠 反斜杠 转义处理
$data = str_replace("\\\\n", "\\n", \jsonEncode($data)); // \\n转为\n $data = str_ ...
- usb 2.0 request
- mysql in和find_in_set
一.查询包含","的列 1.如果查询条件包含单引号 用in 如:select * from t_test where names in ('李红'); 只能查询出names列中值为 ...
- 从零搭建hadoop集群之系统管理操作
1. 配置主机名 [root@hadoop01 ~]# hostname #显示当前主机名 方法一:通过配置文件/etc/hostname (重启后生效) [root@hadoop01 ~]# vim ...
- 初识Node
Node的定义:一个搭建在Chrome JavaScript运行时上的平台,用于构建高速.可伸缩的网络程序. Node构建与JS之上,在服务器端,Node使用V8虚拟机,执行的是本地机器码,省去了 ...
- Vulnhub 靶场 LOOZ: 1
Vulnhub 靶场 LOOZ: 1 前期准备: 靶机地址:https://www.vulnhub.com/entry/looz-1,732/ kali攻击机ip:192.168.147.190 靶机 ...
- flink udaf函数
1.Flink-sql自定义UDAF函数 - 简书 (jianshu.com) 2.Flink SQL 自定义UDAF_k_wzzc的博客-CSDN博客_flink udaf 3.Flink 实践教程 ...