干净的centos7安装docker,阿里云yum源、docker镜像加速,单机mongo安装/测试

1.安装阿里yum 源,否则安装docker慢得很

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  yum clean all(可省)
  yum makecache
  vim /etc/yum.repos.d/CentOS-Base.repo  查看

2.安装docker 

yum update
yum install docker
docker version
systemctl start docker  (要关闭selinux ,vim /etc/selinux/config ,reboot重启)
systemctl status docker
systemctl enable docker 开机启动

查看日志:tail -222f /var/log/messages 或 journalctl -xe

3.配置镜像加速

配置镜像加速,可配置多个,配置完重启docker即可加速:/etc/docker/daemon.json 

内容参考:
{
  "registry-mirrors": ["https://5c3uuctj.mirror.aliyuncs.com","https://hub-mirror.c.163.com", "https://reg-mirror.qiniu.com"]
}

4.mongo测试

注意:启动mongo可能报错\"Cannot set property TasksAccounting, or unknown property.需要yum update一下

4.1 无权限启动,目的是创建一个普通数据库用户

①先无权限启动:docker run--name  mongodb -p 27017:27017 -v /data/mongodb:/data/db mongo:4.0.3
②进入容器:docker exec -it mongodb /bin/bash 
③连接:mongo,默认连接test库
④查看管理员用户可以看到的三个默认数据库(类似MySQL):show dbs 
⑤创建一个用户,xxx库有读写权限,yyy读权限:
db.createUser(
  {
    user: "admin",
    pwd: "123456",
    roles: [ { role: "readWrite", db: "xxx" },
             { role: "read", db: "yyy" } ]
  }
)

4.2 有权限启动及测试

①重建容器docker rm -f mongodb && docker run --name    mongodb -p 27017:27017 -v /data/mongodb:/data/db mongo:4.0.3 --auth
②进入容器:docker exec -it mongodb /bin/bash 
③连接:mongo,默认连接test库
④show dbs 已不能访问,db.auth('admin','123456'),再次show dbs 通过,但没有任何数据库(已看不到管理员可见的那三个默认库)。也可以连接命令指定账户密码:mongo  localhost:27017 -uadmin -p123456
⑤创建xxx,zzz库进行权限测试
use xxx(切到xxx库,没有则创建,执行db.xxx.find()执行OK)
use zzz(切到zzz库,没有则创建,执行db.zzz.find()执行失败,因为创建的admin用户没有zzz库权限)

也可以 4.2+4.3二合一

①启动:docker run--name  mongodb -p 27017:27017 -v /data/mongodb:/data/db 
-e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456  mongo:4.0.3
②进入容器创建test库及其用户root/123456

[root@localhost ~]# docker exec -it mongodb /bin/bash
root@2e3402c547da:/# mongo
MongoDB shell version v4.1.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.1.2
> use admin
switched to db admin
> db.auth("admin","123456")
1
> use xxx
switched to db xxx
> db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "xxx" }]})
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "xxx"
                }
        ]
}

4.3 基本crud及索引测试。更多参考


新增数据:db.xxx.insert({_id:122222,vehicleId:"123456"})
批量新增:
for(var i=0; i<3; i++){
   db.xxx.insert({ "vehicleId" : "9c155b1", "terminalId" : "HXJZVYB1" })
}
删除数据:db.xxx.remove({_id:122222})
查询:db.xxx.find()
其它操作:db.xxx.aggregate([{"$project":{_id:1,vehicleId:1,拼接:{$concat:["a","bc"]}}}])
执行计划:db.xxx.find({$and:[{"updateAt":{$gt:1571711400}},{"updateAt":{$lt:1571754600}},{"vehicleId":"9c155f943952d68f20704aad6f373e5b"},{"terminalId":"HXJZVYB"}]}).explain()


新增索引(以联合索引为例)db.xxx.ensureIndex({"update_at":-1,"vehicle_id":1,"terminal_id":1})
查看索引:db.xxx.getIndexes()
删除索引:db.xxx.dropIndex("vehicle_id_1_terminal_id_1_update_at_1")
导出与恢复(非交互模式执行):mongodump -h localhost:27017 -d xxxDatabase  -c xxxCollection  -o /var/mongodata

4.4  GUI 工具robo3T连接测试(略)

4.5  java代码——springboot data测试

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
spring:
  data:
    mongodb:
      uri: mongodb://admin:123456@localhost:27017/xxx

注入mongoTemplate进行crud代码编写即可


参考

Docker安装以及原理详解_林夕-CSDN博客_docker 原理

docker 启动报错_flymoringbird的博客-CSDN博客

在使用systemctl start docker启动失败时,使用systemctl status docker.service_kavito的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值