首页 > 数据库 >mongoDB学习之--docker安装mongoDB

mongoDB学习之--docker安装mongoDB

时间:2024-10-23 11:14:46浏览次数:5  
标签:mongo -- mongoDB db admin docker data

一、环境准备:

操作系统:centos9 stream:5.14.0-522.el9.x86_64

docker版本:27.3.1

由于最近镜像加速器也被禁的很厉害,很多要么申请白名单,要么得像阿里一样申请二级域名;

可惜配置了申请的阿里域名依然还是连不上docker hub, 

{
    "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}

报错: 

 docker pull mongo:latest
Trying to pull repository docker.io/library/mongo ... 
Get https://registry-1.docker.io/v2/: read tcp 192.168.240.86:43020->54.198.86.24:443: read: connection reset by peer

一般搜索发现不少国内的镜像依然可以使用,而且速度很给力,例如渡渡鸟:https://docker.aityp.com/

二、pull 最新mongo镜像

sudo docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/mongo:7.0.12

pull 成功

三、创建镜像

(1)提前创建数据卷目录

/data/db 

/data/configdb   

/data/logs

文件: /data/configdb/mongod.conf

(2)创建容器:

sudo docker run -d --name mongodb -p 27017:27017 --privileged=true --restart=always 
-v /data/db:/data/db 
-v /data/configdb:/data/configdb 
-v /data/logs:/data/log/ 
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/mongo:7.0.12  
-f /data/configdb/mongod.conf --auth

-d 后台运行

-p 映射端口

--privileged  以root 用户身份在容器内运行

--restart  自动重启容器

-v 容器卷

-f 指明配置文件路径 容器以容器内的配置文件启动

--auth mongo开启安全认证,需要账号密码才能访问

容器启动成功

如果遇到status 是restarting的说明启动失败,可以通过 docker logs mongdodb来查看具体错误内容

(3)查看mongodb版本

docker exec -it mongodb /bin/bash  --进入容器
mongod -version --查看版本

 四、创建账号

(1)使用以下命令添加用户和设置密码,并且尝试连接。

$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 admin 的用户。
docker exec -it mongo mongosh admin
#mongoDB 6.0以上版本用这个指令

成功结果如下:

 (2)创建用户

admin> db.createUser({ user:'admin',pwd:'admin',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
{ ok: 1 }
  • user:'admin': 用户名
  • pwd:'admin': 密码
  • { role:'userAdminAnyDatabase', db: 'admin'}admin数据库,赋予用户所有数据权限
  • readWriteAnyDatabase: 赋予用户读写权限

(3)对于已经创建用户,再次进入容器中,可以直接通过执行启动mongoShell ;  

mongo #mongoDB在默认的路径下直接使用的指令
mongo localhost 27017 # 不在默认路径下的执行 mongo --host mongodb_host --port mongodb_port

(4)连接并测试

# 尝试使用上面创建的用户信息进行连接。
admin> db.auth('admin', 'admin')
{ ok: 1 }

(5)测试

admin> db.user.insertOne({"name":"AAAA","age":20});
{
  acknowledged: true,
  insertedId: ObjectId("65bb0bd014d263b58b6251b1")
}

(6)查询 

## 查询
admin> db.user.find();
[
  { _id: ObjectId("65bb0bd014d263b58b6251b1"), name: 'AAAA', age: 20 }
]

标签:mongo,--,mongoDB,db,admin,docker,data
From: https://www.cnblogs.com/sucretan2010/p/18495951

相关文章

  • 高效同步MySQL数据的实战案例:唯品配货通知单明细表
    MySQL数据集成案例分享:13--BI秉心-唯品配货通知单明细表--vipdispatchorderdetail_z-->vipdispatchorderdetail在数据驱动的业务环境中,如何高效、可靠地实现数据的集成和同步是每个企业面临的重要挑战。本文将聚焦于一个具体的系统对接集成案例,展示如何通过轻易云数据集成平台,将......
  • NVR设备ONVIF接入平台EasyCVR私有化视频平台级联到海康平台后出现异常目录是什么原因?
    国标GB28181视频平台EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。平台不仅具备视频资源管理、设备管理、用户管理、运维管理和安全管理等功能,还支持多种主流标准协议,如GB28181、RTSP/Onvif、RTMP、部标JT808、GA/T1400协议等,以及厂......
  • 线程池
    线程池配置importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;importjava.util.concurrent.ThreadPoolExecutor;@Configura......
  • 层、块以及参数管理
    此Blog仅作为日常学习工作中记录使用,Blog中有不足之处欢迎指出​ 在研究过程中发现,比单层神经网络大,比整个深度神经网络模型小的组件往往更具价值。以计算机视觉为例,ResNet-152具有数百层,这些层是由层组(groupsoflayers)的重复模式组成。​ 块(block)可以描述单个层、由多个层组......
  • 浅析RocketMQ
    SpringBoot引入RocketMQ快速构建单机RocketMQhttps://www.haveyb.com/article/3079参考这篇文章,快速构建单机RocketMQ项目引入jar包和配置<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter&......
  • git命令推送github标签
    如果你在修改了代码后想要在GitHub上创建新标签,你可以遵循以下步骤。这些步骤结合了代码的提交、标签的创建以及将标签推送到GitHub远程仓库的过程。步骤一:提交修改后的代码添加修改到暂存区:使用gitadd命令将你修改过的文件添加到Git的暂存区。例如,如果你修改了所有文件,可以......
  • 快速排序
    一、快速排序的介绍快速排序简单来说就是指先选择一个基准元素(默认第一个是基准元素),再去找到比基准元素大的元素,放在基准元素的右边,比基准元素小的放在基准元素的左边,再将找到的最后一个比基准元素小的元素与基准元素进行交换动画演示的网址https://visualgo.net/en/sorting......
  • 10.19至10.22考试总结
    10.19noip模拟赛一T1序列算法:dp观察到所有数\(\mod3\),所以只有三种取值\(\{0,1,2\}\),所以想要将原序列模\(3\)以后做。经过简单的运算发现,所有数模\(3\)以后做是等价的,所以可以转化。然后考虑题求得很想最长上升子序列,而最长上升子序列有一种\(O(nlogn)\)做法,即记录......
  • 全局平衡二叉树学习笔记
    先挂一张jijidawang的图所以学这玩意就是被TopTree薄纱的有人把这玩意叫静态的LCT,然而可能只需要一些LCT的知识,并不需要会LCT。起码我不会注意这叫GBT,不叫GPT,能聊天的那个是CatGPT,不是CatGBT。前置知识:树链剖分用途\(O(\logn)\)处理树上链修改、链查询、子树修改、子树查......