如何正确地使用 Docker 在云服务器上部署 MongoDB v6 数据库并连接

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 本篇文章将向各位读者介绍使用 Docker 在云服务器上部署 MongoDB v6,并使用免费的 Studio 3T 连接数据库。本文弥补了网上既有方案的一些不足,解决了一些部署中的常见问题,有助于提升部署效率。
本文假设您已经在云服务器中成功安装了 Docker 并下载了 mongo 镜像

1. 创建配置文件

使用 Docker 部署 MongoDB 时,容器默认不会自动生成 mongod.conf 配置文件,需要开发者手动映射云服务器上的配置文件至容器内部,因此,我们需要先创建一份配置文件,您可以任意选择该文件的存储目录,这里我们假设存储路径为 /mongo/mongod.conf

配置文件内容如下:

# 数据库存储路径
dbpath=/var/lib/mongodb

# 日志文件路径
logpath=/var/log/mongodb/mongod.log

# 监听的端口
port=27017

# 允许所有的 IP 地址连接
bind_ip=0.0.0.0

# 启用日志记录
journal=true

# 启用身份验证
auth=true
🚨 注意 bind_ip 的设定非常重要,它使得我们能够远程连接数据库!

2. 创建 MongoDB 容器

使用如下 Docker 命令部署 MongoDB 容器:

docker run --name <your db name> \
  -p <hostport>:27017 \
  -v <config file address>:/etc/mongod.conf \
  -v <dbpath>:/var/lib/mongodb \
  -v <logpath>:/var/log/mongodb/mongod.log \
  -d \
  mongo \
  --auth

请按照您的实际情况替换 <> 内的内容,在这条命令中,从上至下我们制定了:

  1. 容器名;
  2. 云服务器与容器内部的端口映射;
  3. 配置文件映射;
  4. 数据存储路径映射;
  5. 日志路径映射;
  6. 持久化后台运行;
  7. 镜像名称;
  8. 需要身份验证;

3. 创建身份信息

您需要使用 docker exec -it <your db name> mongosh 进入 MongoDB 数据库。

🚨 MongoDB v6 版本不再使用 mongod 命令作为客户端,而使用 mongosh

使用下面的命令创建管理员账户:

use admin
db.createUser({user: "<username>", pwd: "<password>", roles: [{role: "root", db: "admin"}]})

使用管理员账户进行身份验证:

mongo -u <admin> -p <password> --authenticationDatabase admin

创建数据库与普通账号:

use <database_name>
db.createUser({user: "<username>", pwd: "<password>", roles: [{role: "readWrite", db: "<database_name>"}]})

4. 对外开放端口

我们必须开放云服务器端口才能支持远程访问,为此我们需要先查看目前已开放端口(当前为 CentOS):

sudo firewall-cmd --list-all

然后开放目标端口,注意,需使用 --zone=docker 参数:

sudo firewall-cmd --zone=docker --add-port=<the port>/tcp --permanent
💡 默认情况下,CentOS 会使用 firewalld 防火墙来管理网络连接。每个连接/接口都被分配到一个特定的区域,例如 publicprivatedocker 等。每个区域都具有一组默认的防火墙规则,用于控制该区域的网络流量。

最后,如果您使用的是阿里云,您需要登录阿里云控制台,手动在「安全组」一项开启目标端口!

5. 使用 Studio 3T 连接数据库

Studio 3T 是一个免费的 MongoDB GUI,当您下载完成后,您可以通过如下方式访问我们的数据库:

image.png

点击左上角 connect 图标,点击 New Connection 按钮:

image.png

在 URI 中填写 MongoDB URI:mongodb://<username>:<password>@<IP address>:<port>/<database name>

至此,您完成了 MongoDB 的部署,并成功通过 Studio 3T 进行远程连接!

6. 总结

在本篇文章中,我们介绍了如何使用 Docker 部署 v6 版本的 MongoDB 数据库,并使用 Studio 3T 远程连接。目前,很多记述该内容的文章要么不完整,要么不支持 MongoDB v6 版本,这使得部署 MongoDB v6 版本变得不那么轻松,希望我这篇文章能够帮助各位降低部署的难度。如果您在部署的过程中遇到困难,也欢迎您将困难和解决方案附加到评论中,以帮助其他人更方便的操作。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
弹性计算 监控 负载均衡
|
1天前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
48 17
Spring Boot 两种部署到服务器的方式
|
1月前
|
SQL 弹性计算 安全
在云上轻松部署达梦数据库
达梦数据库(DM Database)是达梦数据库有限公司开发的关系型数据库管理系统,广泛应用于政府、金融、能源等行业。它具备高性能、高安全、兼容性强、易管理等特点,支持多种操作系统,适用于关键业务系统、政务系统及大数据处理等场景。在阿里云上,可通过一键部署快速使用达梦数据库DM8。
|
2月前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
2月前
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
159 5
|
1月前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
2月前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
数据采集 SQL 弹性计算
使用云服务器ECS部署了自己的第一个爬虫
云服务器部署爬虫爬取网站最新通告并推送
使用云服务器ECS部署了自己的第一个爬虫
|
11天前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
245 87
|
4天前
|
存储 弹性计算 应用服务中间件
阿里云轻量应用服务器出新品通用型实例了,全球26个地域可选
近日,阿里云再度发力,推出了首款全新升级的轻量应用服务器——通用型实例。这款服务器实例不仅标配了200Mbps峰值公网带宽,更在计算、存储、网络等基础资源上进行了全面优化,旨在为中小企业和开发者提供更加轻量、易用、普惠的云计算服务,满足其对于通用计算小算力的迫切需求。目前,这款新品已在全球26个地域正式上线,为全球用户提供了更加便捷、高效的上云选择。