如何使用Docker安装一个MongoDB呢?

乔欣 Docker 发布时间:2023-03-11 07:53:15 阅读数:7934 1
下文笔者讲述docker安装mongodb的方法分享,如下所示

mongodb简介

MongoDB是一个基于分布式文件存储的数据库
MongoDB由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品
     是非关系数据库当中功能最丰富,最像关系数据库的
Mongodb支持的数据结构非常松散,类似json的bson格式
Mongodb它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,可实现类似关系数据库单表查询的绝大部分功能,还支持对数据建立索引 

docker安装mongodb

# 从repository查找mongo的相关镜像
$ docker search mongo
# 下载官方镜像的最新版本
$ docker pull mongo:latest
# 完成后,检查是否下载成功
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mongo               latest              89232341bd3        2 weeks ago         363MB

启动MongoDB

 $ docker run -itd --name mongo -p 27017:27017 mongo --auth

1.--name后面的参数为docker容器名
2.-p后面是端口映射,即宿主端口:容器端口
3.--auth是否开始鉴权,如果不想开启可以去掉
 
 默认数据是存在容器系统的/data/db目录下的
 
 我们可使用自定义的宿主机器目录
   可以在启动命令加上参数:
    -v /my/own/datadir:/data/db

进入容器

$ docker exec -it mongo bash
$ docker exec -it 89232341bd3 bash

客户端命令连接数据库

 
# 默认连接本地的27017端口的MongoDB
$ mongo
# 指定IP与端口进行连接
$ mongo 127.0.0.1:27017
# 指定用户名和密码连接到指定的MongoDB数据库
$ mongo 127.0.0.1:27017/admin -u user -p password

查看Monogodb版本

(1)在linux命令通过mongo --version查询;

(2)连接上数据库后,通过db.version()查询。

root@89232341bd3:/# mongo --version
MongoDB shell version v4.2.1
git version: 7723hj24n444590okir248rfe22748353592122o
OpenSSL version: OpenSSL 1.1.1  11 Sep 2018

root@89232341bd3:/# mongo
> db.version()

创建admin管理用户

连上数据库后,我们先创建一个admin用户,用以管理其它用户
> use admin
switched to db admin
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
> 

创建具有读写权限的用户

 
> db.auth('admin','123456');
1
> db.createUser({ user:'user',pwd:'123456',roles:[ { role:'readWrite', db: 'testdb'}]});
Successfully added user: {
	"user" : "user",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "testdb"
		}
	]
}
> 

认证用户并操作

>  db.auth('user','123456')
1
> use testdb
switched to db testdb
> 
> db.person.insert({name:'Larry',age:18})
WriteResult({ "nInserted" : 1 })
> db.person.find({})
{ "_id" : ObjectId("5ddaa14edbbac3c4f844366c"), "name" : "Larry", "age" : 18 }
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/docker/202303/6002.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者