Docker 部署 MongoDB 并持久化数据
在现代开发中,MongoDB 作为 NoSQL 数据库广泛应用,而 Docker 则提供了高效的容器化方案。本教程将介绍如何使用 Docker 快速部署 MongoDB,并实现数据持久化,确保数据不会因容器重启或删除而丢失。
1. 准备环境
1.1 安装 Docker 和 Docker Compose
如果你的系统尚未安装 Docker 和 Docker Compose,可以参考以下命令进行安装。
Ubuntu/Debian
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl start docker
sudo systemctl enable docker
CentOS
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo yum install -y epel-release
sudo yum install -y python3-pip
pip3 install docker-compose
验证 Docker 版本
docker --version
docker-compose --version
2. 创建 MongoDB 数据存储目录
为了实现持久化存储,我们需要在宿主机上创建一个目录,用于存放 MongoDB 数据。
mkdir -p /home/middleware/mongodb/data
该目录会被映射到 Docker 容器内的 /data/db
,确保 MongoDB 重启后数据不会丢失。
3. 使用 Docker Compose 部署 MongoDB
在 /home/middleware/mongodb
目录下创建 docker-compose.yml
文件:
version: '3.8' # 指定 Docker Compose 版本
services:
mongodb: # 定义 MongoDB 服务
image: mongo # 使用官方 MongoDB 镜像
container_name: mongo # 指定容器名称
restart: always # 确保容器在崩溃或重启后自动恢复
ports:
- "27017:27017" # 映射宿主机的 27017 端口到容器
environment:
MONGO_INITDB_ROOT_USERNAME: admin # 设置管理员用户名
MONGO_INITDB_ROOT_PASSWORD: admin123 # 设置管理员密码
volumes:
- /home/middleware/mongodb/data:/data/db # 数据持久化
4. 启动 MongoDB 容器
执行以下命令启动 MongoDB 容器:
cd /home/middleware/mongodb
docker-compose up -d
-d
选项表示以 后台模式 运行。
检查容器是否运行
docker ps | grep mongo
如果看到 mongo
容器在运行,则说明部署成功。
5. 连接 MongoDB
5.1 使用 Docker 进入 MongoDB 容器
docker exec -it mongo mongosh -u admin -p admin123 --authenticationDatabase admin
5.2 通过 MongoDB 客户端连接
如果你使用的是 MongoDB Compass 或其他客户端,可以使用以下连接字符串:
mongodb://admin:admin123@localhost:27017/
6. 测试数据持久化
- 创建数据库并插入数据
use testDB
db.testCollection.insertOne({ name: "Hello MongoDB" })
- 删除容器
docker-compose down
- 重新启动 MongoDB 容器
docker-compose up -d
- 验证数据是否仍然存在
use testDB
db.testCollection.find()
如果数据仍然存在,则表明 MongoDB 数据持久化成功!🎉
7. 停止 & 删除 MongoDB 容器
如果你想停止 MongoDB 容器,可以执行:
docker-compose down
如果你要彻底删除容器及其数据,执行:
rm -rf /home/middleware/mongodb
8. 总结
至此,我们已经成功使用 Docker Compose 部署了 MongoDB,并实现了数据持久化,保证容器重启或删除后数据仍然保留。
📌 关键步骤回顾:
- 安装 Docker 和 Docker Compose
- 创建数据存储目录
/home/middleware/mongodb/data
- 编写
docker-compose.yml
配置文件 - 使用
docker-compose up -d
启动 MongoDB - 连接 MongoDB 并验证数据存储
- 测试数据持久化功能
💡 优势:
✅ 快速部署,简化环境配置
✅ 使用 Docker 容器隔离,避免污染本机系统
✅ 持久化存储数据,确保数据安全