如题,使用docker部署mongodb,并实现持久化。之前按网上介绍的方法大多在docker exec这一步报错了,原因是mongodb新老版本差异,记录下。
1.标题拉取镜像
docker pull mongo:latest
2.运行
- 用-v做目录映射等于做了持久化,容器删除新建后数据还在。(如物理机目录不存在,run时会自动创建)
- 端口映射是一定要有的,不然在宿主机上无法连接
- –auth 需要密码才能访问容器服务
docker run --name mongodb -v /data/mongodb:/data/db -d -p 27017:27017 mongo --auth
3.以mongosh方式进入,并切换到admin数据库
很多文章使用docker exec -it mongodb mongo会报错,因为新版/bin目录里mongo文件变成了mongosh
docker exec -it mongodb /bin/mongosh admin
或以下方式,一样
docker exec -it mongodb /bin/mongosh
use admin
docker exec -it mongodb /bin/bash
/bin/mongosh admin
4. 创建对应的用户赋予权限,并使用新用户登录
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
db.auth('admin', '123456')
5. 测试
show databases //查看所有数据库
show tables //查看所有表(集合)
use test //切换数据库(如不存在则先自动创建)
db.user.insert( { _id: 1, name: "kudaren", age: "29" } ) //insert
db.user.find();//select
这就完成了,很方便。持久化我测试了,容器删除后,重新用run跑起来一个,之前创建的用户和数据库还在。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/133972.html