使用docker创建mongoDB数据库容器

tech2022-11-05  137

使用docker创建mongoDB数据库容器

下载mongo镜像

docker pull mongo

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

下载完成后查看

docker images

创建并启动mongo容器

创建一个本地的文件夹, 用来进行数据文件夹映射

数据文件保存在本地比较好, 这样即使删除了容器数据库文件还在,数据不会丢失

创建启动容器
docker run -d -p 27017:27017 --restart always --name mongodb -v E:\Docker_file\mongo\data\db:/data/db mongo --auth

参数说明:

-d : 允许容器后台运行-p 27017:27017 : 进行端口映射--restart always: 容器随docker启动而启动-v E:\Docker_file\mongo\data\db:/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 数据库中进行!!!
最新回复(0)