Docker部署mongodb:使用Docker部署

准备工作:确保 Docker 环境就绪

在开始 Docker 部署 MongoDB 之前,
先确认你的服务器已经安装并启动了 Docker。如果你还没装 Docker
可以用下面的一键脚本(CentOS / Ubuntu 通用):

curl -fsSL https://get.docker.com | sh
sudo systemctl start docker
sudo systemctl enable docker

安装完成后运行 docker --version 看到版本号就算成功。
另外建议新建一个目录(比如 /data/mongo)用于存放 MongoDB 的数据文件,方便后续挂载。

拉取 MongoDB 镜像并启动基础容器

打开终端,先拉取官方 MongoDB 镜像(这里用 7.0 版本,稳定且常用):

docker pull mongo:7.0

拉到本地后,你可以用下面命令快速启动一个测试容器:

docker run -d --name my-mongo -p 27017:27017 mongo:7.0
  • -d 表示后台运行
  • --name my-mongo 给容器起个名字
  • -p 27017:27017 把宿主机 27017 端口映射到容器内的 MongoDB 默认端口

现在用 docker ps 应该能看到容器正在运行。
但这样启动的数据会随着容器删除而丢失,对于生产环境必须做数据持久化,我们下一步就来处理。

配置数据持久化与用户认证

生产环境建议把 MongoDB 的数据目录挂载到宿主机,并且开启认证。
先创建挂载目录和日志目录:

mkdir -p /data/mongo/db
mkdir -p /data/mongo/log

然后停止并删除刚才测试的容器:

docker stop my-mongo && docker rm my-mongo

接下来重新启动容器,挂载目录并开启认证:

docker run -d \
  --name mongo-prod \
  -p 27017:27017 \
  -v /data/mongo/db:/data/db \
  -v /data/mongo/log:/var/log/mongodb \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=YourStrongPassword \
  mongo:7.0 --auth

注意--auth 参数必须写在镜像名后面,
表示启动时开启身份验证。MONGO_INITDB_ROOT_USERNAMEMONGO_INITDB_ROOT_PASSWORD 会自动创建管理员用户。

启动后用下面命令测试能否通过认证连接:

docker exec -it mongo-prod mongosh -u admin -p YourStrongPassword --authenticationDatabase admin

如果进入 test> 提示符,说明连接成功。

避坑指南:常见问题与解决方法

  • 容器启动后立马退出:检查端口是否已被占用(lsof -i:27017),或者 /data/mongo/db 目录权限不足,可以用 chown -R 999:999 /data/mongo/db 修复(MongoDB 容器内用户 uid 为 999)。
  • 认证失败:确认环境变量 MONGO_INITDB_ROOT_USERNAMEMONGO_INITDB_ROOT_PASSWORD 拼写正确,并且启动时加了 --auth。如果需要修改密码,可以进入容器后使用 db.changeUserPassword()
  • 数据丢失:删除容器前务必检查挂载路径是否正确。如果忘记挂载,数据会留在容器内部,删除容器后无法恢复。建议每次启动都用 -v 指定宿主机目录。

效果验证:确认 Docker 部署的 MongoDB 正常工作

  1. 检查容器状态docker ps -a 确认 mongo-prod 处于 Up 状态。
  2. 测试写入数据:进入容器 shell 后执行以下命令:
use testdb
db.testcol.insertOne({name: "hello", status: 1})
db.testcol.find()

如果返回刚插入的文档,则读写正常。

  1. 验证数据持久化:删除容器 docker rm -f mongo-prod,然后重新用同样的挂载卷启动新容器(不设用户密码的话需要先验证认证)。重新连接后执行 db.testcol.find(),应该能看到之前的数据。
  2. 远程连接测试:用本机的 MongoDB Compass 或 mongo 客户端连接服务器 IP:27017,输入刚才设置的用户名密码,能正常查看数据库就代表部署成功。

如果你正在处理 Docker 部署 MongoDB,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
手把手教你查看Linux服务器用户登录日志,排查异常登录
下一篇
服务器数据库服务器优化:从零开始的性能提升指南
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意