基于docker安装mongo

文章介绍了如何在Docker环境中安装MongoDB,包括创建数据挂载点,启动容器并创建管理员用户。此外,还提到了使用DataGrip、Navicat和nosqlbooster4mongo作为MongoDB的可视化工具进行连接和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.背景

基于业务的需求,部分数据量较大,基本一天的数据量都在1亿左右,关系型数据库已经满足不了了要求,所以更换为非关系型数据库.当然非关系型数据库的种类有很多,我们选择的是mongo,要想了解熟悉mongo,不能只做书面上的功夫,必须较强实际操作,才可以得心应手.

2. 安装mongo

在docker 中安装mongo的方式有很多,基本都比较简单,但是在基于docker环境安装mongo时,必须有一台自己的linux服务器,并且在服务器中安装好docker
docker的安装方法:docker官方安装

2.1 安装mongo

基于docker run安装

 # 建立文件用来挂在mongo的数据,并且赋予可执行的权限
 [root@VM-8-5-centos home]$mkdir -p mongo/data
[root@VM-8-5-centos mongo]$chmod 777 data/
[root@VM-8-5-centos mongo]$ll
total 4
drwxrwxrwx 2 root root 4096 Apr 21 15:29 data

# 安装mongo
docker run -it --name mongo\
-p 27017:27017 \
-v /home/mongo/data:/data/db \
 mongo:latest --auth

# 创建用户  mongo的默认密码为admin
[root@VM-8-5-centos home]$docker ps|grep mongo
13fe461eaa6e   mongo:             "docker-entrypoint.s…"   52 minutes ago   Up 52 minutes   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp                                                              mongo
[root@VM-8-5-centos home]$docker exec -it 13fe461eaa6e mongo admin
[root@VM-8-5-centos home]$docker exec -it 13fe461eaa6e mongo admin
MongoDB shell version 
connecting to: mongodb://127.0.0.1:2707/admin?compressors=disbled&gssapiServiceName=mongo
Implicit session: session { "id" : UUID("ffb-4fe0-876a-45887a2a") }
MongoDB server version:
db.createUser({ user:'admin',pwd:'admin',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		},
		"readWriteAnyDatabase"
	]
}
# 登录
> db.auth('admin','admin');
1

启动时如果报错:

OCI runtime exec failed: exec failed: unable to start container process: exec: “mongo”: executable file not found in $PATH: unknown

是因为:
mongo5.0以上的版本使用mongo来执行mongodb命令已经不支持了,你需要改用mongosh来替代mongo!

2.2 可视化工具登录

mongo可视化连接工具有很多,具体用按个完全看个人喜好

2.2.1 DataGrip可视化工具

DataGrip是大名鼎鼎的JetBrains 公司推出的管理数据库的产品,对于 JetBrains 公司,开发者肯定都不陌生,IDEA 就是这个公司的产品,用户体验非常不错。
DataGrip 提供 Windows 版本和 macOS 版本,支持几乎所有主流的关系数据库产品,如:PostgreSQL、MySQL、Oracle Database、SQL Server、Azure、Amazon Redshift、SQLite、DB2、H2、Sybase、Exasol、Apache Derby、MariaDB、HyperSQL、ClickHouse、Cassandra、Vertica、Greenplum、Apache Hive、Snowflake 等,并且提供了简单易用的界面,开发者上手几乎不会遇到任何困难。
下载地址:官网地址
从官网下载的DataGrip可以免费试用30天,如果想要激活,可以搜下,网上的激活方式有很多.
使用

  1. 打开软件,找到数据源,然后找打mongo
    在这里插入图片描述
    第一次使用,mongo数据源不会再最近一栏的下面,在全面支持下面
  2. 点开mongo,然后进行连接配置
    在这里插入图片描述
    第一次连接时会联网自动下载驱动,

当然支持离线安装驱动,其实离线安装驱动的用处还是比较大的
首先你需要在一台联网的电脑中下载相应的驱动,然后找到下载驱动的位置,把驱动完全拷贝出来,方法哦没联网的电脑中相同的目录下即可
位置:
C:\Users{你电脑的名字}\AppData\Roaming\JetBrains\DataGrip2021.3\jdbc-drivers

在这里插入图片描述

  1. 连接上就可以开始使用了
    在这里插入图片描述

2.2 Navicat可视化工具

这个工具安装使用都比较简单

2.3 nosqlbooster4mongo可视化工具

这个工具安装比较简单,直接安装即可

2.3.1 下载

官方下载地址
在这里插入图片描述
选择对应的系统环境下载即可,下载完,直接一键安装

2.3.2 使用

在这里插入图片描述
在这里插入图片描述

### 删除 MongoDB 容器 要删除正在运行的 MongoDB 容器,首先需要停止该容器。可以使用 `docker stop` 命令来完成此操作: ```bash docker stop <container_id_or_name> ``` 其中 `<container_id_or_name>` 是目标容器的 ID 或名称。如果不知道具体的容器 ID 或名称,可以通过以下命令查看当前所有的容器列表(包括已停止的)[^1]: ```bash docker ps -a ``` 确认容器已被停止后,可以执行以下命令永久删除容器: ```bash docker rm <container_id_or_name> ``` ### 删除 MongoDB 镜像 若想彻底移除 MongoDB 的镜像文件,则需先确保没有任何基于该镜像的容器处于活动状态或者存在。再次强调,在尝试删除镜像之前,请务必清理掉所有关联的容器。 查询本地存在的镜像列表可借助如下指令实现: ```bash docker images ``` 当明确了所需移除的具体镜像之后,利用下面这条语句即可达成目的: ```bash docker rmi <image_id_or_name>:<tag> ``` 例如,对于标签为 `3.6` 的官方 Mongo 镜像而言,其完整的删除形式可能是这样的: ```bash docker rmi mongo:3.6 ``` 需要注意的是,假如仍有某些未被清除干净的依赖于此镜像之上的实例残留下来的话,那么上述过程可能会遭遇阻碍并提示错误消息;此时应当返回去先行解决那些遗留下来的容器问题再继续往下推进[^2]。 另外,关于持久化存储部分提到过的内容也值得注意——即通过 `-v` 参数指定挂载点的方式保存数据到宿主机上。因此,在实际操作过程中还应该考虑是否有额外的数据卷也需要一并处理掉。这通常涉及到查找相关的 volumes 并对其进行单独管理的操作步骤[^4]: ```bash docker volume ls docker volume rm <volume_name> ``` 以上就是针对如何在 Docker 中安全有效地卸载以及彻底消除一切有关联至 MongoDB 组件的方法概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值