第一步:拉取镜像
docker pull mongo:7.0.0
第二步:准备宿主机目录
# 1. 清理旧目录(谨慎操作!会删除原有数据)
rm -rf /opt/mongo
# 2. 创建数据目录
mkdir -p /opt/mongo/data/db
# 3. 设置目录权限(MongoDB 容器以 UID 999 运行)
chown -R 999:999 /opt/mongo/data/db
chmod -R 755 /opt/mongo/data/db
第三步:启动容器
docker run -d \
--restart=always \ # 容器异常退出时自动重启
-p 27017:27017 \ # 默认 MongoDB 端口
--name mongo \ # 容器名称
-v /opt/mongo/data/db:/data/db \ # 数据持久化挂载
mongo:7.0.0
第四步:验证容器状态
# 1. 检查容器是否运行
docker ps | grep mongo
# 2. 查看启动日志(定位权限或端口问题)
docker logs mongo
# 3. 验证端口监听
netstat -tuln | grep 27017
第五步:进入容器操作
# 方法1:直接进入 MongoDB Shell(推荐)
docker exec -it mongo mongosh
# 方法2:进入容器内部再启动 Shell
docker exec -it mongo /bin/bash
mongosh
第六步:基础配置
# 1. 创建管理员用户(在 MongoDB Shell 中执行)
use admin
db.createUser({
user: "admin",
pwd: "your_strong_password",
roles: ["root"]
})
# 2. 启用认证(重启容器生效)
# 添加启动参数:--auth
docker run -d ... mongo:7.0.0 --auth
常见问题解决
1. 数据目录权限不足
# 错误现象:容器反复重启,日志报错 "Permission denied"
# 修复命令:
chown -R 999:999 /opt/mongo/data/db
2. 端口冲突
# 检查占用进程
lsof -i :27017
# 若端口被占用,更换端口(如 27018):
docker run ... -p 27018:27017 ...
3. 数据持久化验证
# 在容器内创建测试数据
use testdb
db.testcoll.insertOne({ name: "test" })
# 删除容器后重新挂载目录,检查数据是否存在
docker rm -f mongo
docker run ... -v /opt/mongo/data/db:/data/db ...
附:生产环境建议
- 启用认证:务必使用
--auth
参数启动容器。 - 备份策略:
# 定时备份示例 docker exec mongo mongodump --uri="mongodb://admin:password@localhost:27017" --out=/data/backup
- 资源限制:
--memory 2g \ # 限制内存 --cpus 1 # 限制 CPU
总结
通过以上步骤,MongoDB 7.0.0 已完成安装并支持数据持久化。若需进一步配置副本集或分片集群,请参考 MongoDB 官方文档。