代码改变世界
[登录 · 注册]
  • docker安装mongodb
  • docker pull mongo

    docker run -p 27017:27017 -v $PWD/data:/data/db -v $PWD/conf/mongodb.conf:/etc/mongodb.conf --name mymongodb -d mongo --auth

    在上面的命令中,几个命令参数的详细解释如下:
    -p 指定容器的端口映射,mongodb 默认端口为 27017
    -v 为设置容器的挂载目录,这里是将<LocalDirectoryPath>即本机中的目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
    --name 为设置该容器的名称
    -d 设置容器以守护进程方式运行
     
    为了安全,我们要mongodb设置密码:
     
    -name mymongodb -d mongo  --auth
    需要密码才能访问mongodb服务。
     
     

    进入 mongo 交互模式

    1. docker exec -it <CONTAINER NAME> mongo 数据库名称

     https://www.jianshu.com/p/aa7a7f4e2527

    接着使用以下命令添加用户和设置密码,并且尝试连接。

    $ docker exec -it mongo mongo admin
    # 创建一个名为 admin,密码为 123456 的用户。
    >  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
    # 尝试使用上面创建的用户信息进行连接。
    > db.auth('admin', '123456')

    创建一个role为root的
    db.createUser({ user:'admin', pwd:'admin', roles:[{role:'root',db:'admin'}] })

    添加管理用户
    mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase

    客户端连接:
    > use admin
    > db.auth("admin","123456")   #认证,返回1表示成功
     
     

    创建操作用户
    验证之后还是做不了操作,因为admin只有用户管理权限,下面创建用户,用户都跟着库走,
    > use mydb
    > db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})
    7、使用创建的用户root登录进行数据库操作:
    [root@localhost mongodb]# mongo 127.0.0.1/mydb -uroot -p
    MongoDB shell version: 3.2.9
    Enter password:
    connecting to: 127.0.0.1/mydb
    > db
    mydb
    > use mydb
    switched to db mydb
    > show collections
    然后就可以进行增删改查各种数据操作...

    
    

    admin这个账号只能用作客户端远程连接,操作的,如果程序里想要连接各个集合,要针对各个库在去单独设置账号密码,

    程序里就设置新的账号密码



    https://www.runoob.com/docker/docker-install-mongodb.html

    MongoDB 的 Docker 常用命令

    # 查看正在运行的容器

    docker container ls

    # 查看所有容器

    docker container ls -a

    # 指定 CONTAINER ID 停止容器

    docker stop <CONTAINER ID>

    # 指定容器名称停止容器

    docker stop <CONTAINER NAME>

    # 指定容器 CONTAINER ID 启动容器

    docker start <CONTAINER ID>

    # 指定容器名称启动容器

    docker start <CONTAINER NAME>

    # 指定容器 CONTAINER ID 重启容器

    docker restart <CONTAINER ID>

    # 指定容器名称重启容器

    docker restart <CONTAINER NAME>

    进入 mongo 交互模式

    docker exec -it <CONTAINER NAME> mongo 数据库名称


     https://zhuanlan.zhihu.com/p/81496897?from_voters_page=true
     
    配置文件:
     
    # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # where to write logging data.
    systemLog:
      destination: file
      logAppend: true
      # 更改日志目录
      path: /tmp/mongod.log
    
    # Where and how to store data.
    storage:
      # 更改数据目录
      dbPath: /data/db/
      journal:
        enabled: true
    #  engine:
    #  wiredTiger:
    
    # how the process runs
    processManagement:
      fork: true  # fork and run in background
    #  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
      timeZoneInfo: /usr/share/zoneinfo
    
    # network interfaces
    # 修改端口
    net:
      port: 27017
      # 因为127.0.0.1只能在本机访问,改后通过本机的IP就能访问服务
      bindIpAll=true
      #kbindIp: 0.0.0.0  # Enter 127.0.0.1,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
    
    # 开启权限校验
    security:
      authorization: enabled
      
    #operationProfiling:
    
    #replication:
    
    #sharding:
    
    ## Enterprise-Only Options
    
    #auditLog:
    
    #snmp:Configuration File Options# mongod.conf
     
  • 【推广】 阿里云小站-上云优惠聚集地(新老客户同享)更有每天限时秒杀!
    【推广】 云服务器低至0.95折 1核2G ECS云服务器8.1元/月
    【推广】 阿里云老用户升级四重礼遇享6.5折限时折扣!
  • 原文:https://www.cnblogs.com/youxin/p/12996263.html
走看看 - 开发者的网上家园