docker mongodb安装

  • docker mongodb安装
  • 查看镜像
  • 拉取最新镜像
  • 创建目录
  • 启动服务
  • 登录mongodb,创建用户及数据库
  • mongo登录测试用户权限
  • 客户端登录测试


docker mongodb安装

查看镜像

1、查看 MongoDB 版本

MongoDB 镜像库地址: https:///_/mongo?tab=tags&page=1

mongo docker mongo docker镜像_mongodb


docker search mongodb

mongo docker mongo docker镜像_mongodb_02

拉取最新镜像

docker pull mongo:latest

mongo docker mongo docker镜像_数据库_03


本地查看镜像:

mongo docker mongo docker镜像_mongodb_04

创建目录

sudo mkdir -p /home/data/mongodb/data/{db,logs}

sudo chmod 777 -R /home/data/

mongo docker mongo docker镜像_mongo docker_05

启动服务

执行命令:

docker run -p 27017:27017 --name mongodb -v /home/data/mongodb/data/db:/data/db -v /home/data/mongodb/data/logs:/data/logs --restart=always -d mongo:latest --wiredTigerCacheSizeGB 10 --auth

参数说明:

-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。

–name mongodb : 给启动容器起一个名称

-v /home/data/mongodb/data/db:/data/db : 将宿主机/home/data/mongodb/data/db数据目录挂在到容器/data/db目录

-v /home/data/mongodb/data/logs:/data/logs : 将宿主机/home/data/mongodb/data/log日志目录挂在到容器/data/logs目录

-d mongo:latest 后台进程启动

–wiredTigerCacheSizeGB 10 :设置mongodb使用内存大小

–auth:需要密码才能访问容器服务。

mongo docker mongo docker镜像_mongodb_06

登录mongodb,创建用户及数据库

1、创建一个名为 root,密码为 Dszn@2020,角色为超级管理员,数据库为admin权限的用户,如果使用其他角色,需要授权表,用户等各种权限,操作比较麻烦,这里就直接使用超级用户角色。

db.createUser({ user: 'admin', pwd: 'Dszn@2020', roles: [ { role: "root", db: "admin" } ] }); #创建用户
db.auth('admin', 'Dszn@2020'); #使用admin用户登录
show dbs; #查看所有的库

mongo docker mongo docker镜像_mongodb_07


2、创建beacon数据库用户

use beacon;
db.beacon.insert({"name":"测试创建数据库beacon"});
db.createUser({ user: 'root', pwd: 'Dszn@2020', roles: [ { role: "dbOwner", db: "beacon" } ] });
db.auth('root','Dszn@2020');

mongo docker mongo docker镜像_mongo docker_08

mongo登录测试用户权限

1、使用刚创建的admin超级管理员用户登录。

mongo --host 192.168.0.85 -u “root” -p’Dszn@2020’ --authenticationDatabase “admin”

参数说明:

–host: 登录mongodb服务器ip地址

-u: 登录用户

-p:登录密码

–authenticationDatabase: 授权数据库

mongo docker mongo docker镜像_docker_09


2、使用刚创建的root用户登录

mongo --host 47.119.120.197 -u "root" -p'Dszn@2020' --authenticationDatabase "beacon"
show dbs;
use beacon;
show collections;
db.beacon.find();

mongo docker mongo docker镜像_mongodb_10

常用命令:

use admin
db.system.users.remove({user:“root”}); //删除root用户
db.system.users.find(); 查看所有用户
db.addUser(“root”,“123456”);//已经存在的用户更改密码
用户user02添加admin数据库的readWrite角色
db.grantRolesToUser( “user02”, [ { role: “readWrite”, db: “admin” }, { role: “user02”, db: “admin” } ] )

更新用户user02具有admin数据库readWrite角色为read角色。

use admin
db.updateUser( “user02”, { customData: { info: “user for user02” }, roles: [ { role: “user02”, db: “admin” }, { role: “read”, db: “admin” } ] } )

客户端登录测试

使用客户端登录,录入登录服务器ip地址,端口号,登录用户,密码测试验证

mongo docker mongo docker镜像_mongo docker_11


使用用户登录,需要录入账号,密码,登录数据库,如果没有用户,不需要录入,使用默认的即可。

mongo docker mongo docker镜像_数据库_12


登录完成如下,可以看到数据库及表结构

mongo docker mongo docker镜像_mongodb_13


以上标识mongodb安装完成。