使用docker部署mongodb

如题,使用docker部署mongodb,并实现持久化。之前按网上介绍的方法大多在docker exec这一步报错了,原因是mongodb新老版本差异,记录下。

1.标题拉取镜像

docker pull mongo:latest

2.运行

  1. 用-v做目录映射等于做了持久化,容器删除新建后数据还在。(如物理机目录不存在,run时会自动创建)
  2. 端口映射是一定要有的,不然在宿主机上无法连接
  3. –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. 测试

常用mongodb命令

show databases //查看所有数据库
show tables //查看所有表(集合)
use test //切换数据库(如不存在则先自动创建)
db.user.insert( { _id: 1, name: "kudaren", age: "29" } ) //insert
db.user.find();//select

这就完成了,很方便。持久化我测试了,容器删除后,重新用run跑起来一个,之前创建的用户和数据库还在。

你可能感兴趣的:(mongodb,docker,php,mongodb,数据库,docker)