使用docker创建mongoDB数据库容器

使用docker创建mongoDB数据库容器

下载mongo镜像

docker pull mongo
后面没有版本后默认下载最新的

下载完成后查看

docker images

创建并启动mongo容器

创建一个本地的文件夹, 用来进行数据文件夹映射
数据文件保存在本地比较好, 这样即使删除了容器数据库文件还在,数据不会丢失
创建启动容器
docker run -d -p 27017:27017 --restart always  --name mongodb -v E:Docker_filemongodatadb:/data/db mongo --auth

参数说明:

    -d : 允许容器后台运行 -p 27017:27017 : 进行端口映射 --restart always: 容器随docker启动而启动 -v E:Docker_filemongodatadb:/data/db : 数据库文件地址映射, --auth : 需要密码才能访问容器服务
添加用户和密码
进入容器内部
docker exec -it mongodb mongo admin
切换到admin库
如果当前是admin数据库, 则这步可以不执行
use admin;
创建名和密码都为 admin 的用户
db.createUser({
          
    user:admin,pwd:admin,roles:[ {
          
    role:userAdminAnyDatabase, db: admin}]});
连接数据库
db.auth("admin","admin")

使用工具连接数据库

数据用户名和密码, 测试连接

可能会出现的问题

在操作数据库的时候,可能会出现

这是权限造成的, 我试了试, 创建用户的时候, 将用户设置为超级用户即可

创建一个用户名和密码都为 root 的超级用户
db.createUser({
          
    user: "root" , pwd: "root", roles: ["root"]})

这样在操作数据看就没有问题了

也可以修改 admin 用户的权限来解决
db.grantRolesToUser( "admin", [{
          
    role: "root", db: "admin"}])

也可以修改 admin 用户的权限来解决

db.grantRolesToUser( "admin", [{
          
    role: "root", db: "admin"}])
注意: 用户相关操作一定要在 admin 数据库中进行!!!
经验分享 程序员 微信小程序 职场和发展