docker安装mongo

1.官方网址
https://hub.docker.com/_/mongo/ 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

2. 拉取官方镜像
(1) docker pull mongo:2.6.12
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

3.准备配置文件到宿主机以便于挂载(镜像中无配置文件)
(1)touch -c /etc/mongo/mongod.conf
(2)touch -c /etc/mongo/mongos.conf
  
4. 运行镜像
(1)在文件docker-compose.yml中添加运行项
mongo:
                image: mongo:2.6.12
    container_name: mongo
    privileged: false
    ports:
                    - 27017:27017
    restart: always
    environment:
        # 在这里输入 MongoDB 的 root 用户与密码,如果使用了此项,则不需要 --auth 参数(2.6.12版本设置的root账号无效)
                    MONGO_INITDB_ROOT_USERNAME: root
        MONGO_INITDB_ROOT_PASSWORD: mongo#dev#root
    volumes:
                    - /etc/mongo:/data/configdb
                    - /data/lib/mongo:/data/db
        - /data/log/mongodb:/data/log/mongodb
    entrypoint: /entrypoint.sh
                command:  mongod --config /data/configdb/mongod.conf
(2)运行:docker-compose up -d mongo
                -错误信息:Error parsing command line: unknown option config /data/configdb/mongod.conf
                -出错原因:"/usr/local/bin/mongod '--config /data/configdb/mongod.conf'"
                -解决方法:
                                a)--config和配置文件路径换行写
                -错误信息:ERROR: listen(): bind() failed errno:99 Cannot assign requested address for socket: 10.161.190.107:27017
                -解决方法:
                                a)mongod.conf配置文件注释掉bind_ip项
(3)进入容器:docker exec -it mongo /bin/sh

5.MongoDB 的授权访问
(1)进入容器:docker exec -it mongo /bin/sh
(2)执行命令:mongo
(3)查看是否开启授权:show dbs,如果没有报错,则表示没有开启授权
(4)use admin
(5)授权:db.auth("root","mongo#dev#root")
(6)use qthui
(7)添加用户:db.createUser({user: 'qthui', pwd: 'mongo#dev#qthui', roles: [{role: 'readWrite', db: 'qthui'}]});
(8)测试:mongo qthui -u qthui -p mongo#dev#qthui

6.MongoDB内置角色
//这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
//其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。
//userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限
(1).数据库用户角色:read、readWrite;
(2).数据库管理角色:dbAdmin、dbOwner、userAdmin;
(3).集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
(4).备份恢复角色:backup、restore;
(5).所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
(6).超级用户角色:root    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值