Docker 部署 MongoDB

🚀 作者主页: 有来技术

🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🍃 vue-uniapp-template

🌺 仓库主页: GitCode💫 Gitee 💫 Github

💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正!

前言

MongoDB 是一种流行的 NoSQL 数据库,因其灵活性和可扩展性而备受青睐。在现代开发环境中,通过 Docker 容器化 MongoDB 可简化部署和管理。本文档介绍如何使用 Docker 快速设置和配置 MongoDB。

环境准备

在开始使用 Docker 安装 MongoDB 之前,请确保你的系统上已经安装了 Docker。如果没有安装 Docker,可以参考这篇文章进行安装:Linux 服务器安装 Docker

安装 MongoDB

1. 创建文件

创建 MongoDB 所需的挂载目录和配置文件:

bash 复制代码
sudo mkdir -p /mnt/mongo/{config,data,logs}
sudo touch /mnt/mongo/config/mongod.conf

在配置文件 mongod.conf 添加以下内容

bash 复制代码
# 数据库存储路径
dbpath=/mnt/mongo/data

# 日志文件路径
logpath=/mnt/mongo/logs/mongod.log

# 监听的端口
port=27017

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

# 启用日志记录
journal=true

# 是否后台运行
fork=true

# 启用身份验证
#auth=true

2. 拉取 MongoDB 镜像

拉取 MongoDB 的指定版本:

bash 复制代码
docker pull mongo:7.0.12

4. 启动容器

使用以下命令启动 MongoDB 容器,并设置环境变量指定管理员账户:

bash 复制代码
docker run -d --name mongo --restart=always \
-p 27017:27017 \
-v /mnt/mongo/data:/data/db \
-v /mnt/mongo/logs:/var/log/mongodb \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo:7.0.12

5. 创建用户

进入 MongoDB 容器并创建新的用户:

复制代码
docker exec -it mongo /bin/mongosh

然后创建 youlai 用户

bash 复制代码
use admin
db.auth("admin","123456")
db.createUser(
    {
        user: "youlai",
        pwd: "123456",
        roles: [{ role: "root", db: "admin" }]
    }
);

若需要更新用户或更改密码:

bash 复制代码
db.updateUser("youlai", { roles: [{ role: "readWrite", db: "admin" }] })
db.changeUserPassword("youlai", "123456")

删除用户示例:

bash 复制代码
db.dropUser("youlai")

查看现有用户:

bash 复制代码
show users

6. 连接测试

使用 Navicat 测试连接:

结语

通过上述步骤,你应该能够成功在 Docker 中部署并配置 MongoDB。希望这份指南能帮助到你简化部署流程和提升效率。

相关推荐
傻傻虎虎3 小时前
【Docker】常用帮忙、镜像、容器、其他命令合集(2)
运维·docker·容器
清风6666669 小时前
基于STM32的APP遥控视频水泵小车设计
stm32·单片机·mongodb·毕业设计·音视频·课程设计
2401_8979300610 小时前
使用Docker轻松部署Neo4j图数据库
数据库·docker·neo4j
LeeZhao@12 小时前
【AI推理部署】Docker篇04—Docker自动构建镜像
人工智能·docker·容器
程思扬12 小时前
利用JSONCrack与cpolar提升数据可视化及跨团队协作效率
网络·人工智能·经验分享·docker·信息可视化·容器·架构
落日漫游13 小时前
dockercompose和k8s区别
docker·kubernetes
lllsure14 小时前
【Docker】存储卷
运维·docker·容器
纤瘦的鲸鱼16 小时前
Docker 从入门到实践:容器化技术核心指南
java·docker·容器
最笨的羊羊16 小时前
Debezium日常分享系列之:MongoDB 新文档状态提取
mongodb·debezium日常分享系列·新文档状态提取
邂逅星河浪漫16 小时前
【Docker+Nginx+Ollama】前后端分离式项目部署(传统打包方式)
java·nginx·docker·部署