Loading... ### 1.docker 拉取MongoDB镜像 ```shell docker pull mongo ``` ### 2.创建配置和数据挂载点 ```shell cd /docker mkdir mongo cd mongo mkdir data logs conf chmod 777 data touch logs/mongod.log chmod 777 logs/mongod.log touch conf/mongod.conf chmod 766 conf/mongod.conf ``` ### 3.修改mongod.conf配置文件(添加如下配置) ```bash # 数据库文件存储位置 dbpath = /data/db # log文件存储位置 logpath = /data/log/mongod.log # 使用追加的方式写日志 logappend = true # 是否以守护进程方式运行 # fork = true # 全部ip可以访问 bind_ip = 0.0.0.0 # 端口号 port = 27017 # 是否启用认证 auth = true # 设置oplog的大小(MB) oplogSize=2048 ``` ### 4.执行启动mongodb容器命令 ```shell docker run -itd --name mongodb --restart=always --privileged -p 27017:27017 -v /docker/mongo/data:/data/db -v /docker/mongo/conf:/data/configdb -v /docker/mongo/logs:/data/log/ mongo:latest -f /data/configdb/mongod.conf ``` ##### 参数说明 - `--restart=always Docker` 服务重启容器也启动 - `--privileged` 拥有真正的root权限 - `-f` 指定配置文件 ### 5.查看启动的容器并进入容器 ```shell 命令1> docker ps -a 命令2> docker exec -it mongodb bash 命令3> mongo # 6.0以上版本进入命令是 mongosh 命令4> use admin ``` ### 6.创建管理员账号 ```shell # 创建一个名为 admin,密码为 123456 的用户。 > db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]}); # 尝试使用上面创建的用户信息进行连接。 > db.auth('admin', '123456') ``` 注意: 记得添加角色 readWrite, 不然会没有权限读写数据库; | 权限 | 说明 | | -------------------- | ---------------------------------------------------------------------------------- | | read | 允许用户读取指定数据库 | | readWrite | 允许用户读写指定数据库 | | dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile | | userAdmin | 允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户 | | clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 | | readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 | | readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 | | userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 | | dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 | | root | 只在admin数据库中可用。超级账号,超级权限 | 最后修改:2023 年 09 月 03 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 3 如果觉得我的文章对你有用,请随意赞赏