一行命令搞定 MongoDB 开发环境:Docker Compose 部署 + 可视化管理
Posted on 2026-04-27 13:58 work hard work smart 阅读(80) 评论(0) 收藏 举报一行命令搞定 MongoDB 开发环境:Docker Compose 部署 + 可视化管理
记录从编写 docker-compose.yml 到成功运行 MongoDB 与 mongo-express 的全过程,并解决国内网络下镜像拉取失败的问题
一、目标:快速拥有一套 MongoDB + 可视化管理界面
作为开发者,经常需要本地运行 MongoDB 进行测试。以往需要下载安装、配置服务、再装一个客户端工具,步骤繁琐。使用 Docker Compose,只需一个配置文件,就能同时启动 MongoDB 服务和 Web 版管理界面 mongo-express。
最终效果:
-
MongoDB 服务运行在
localhost:27017,默认账号root/123456 -
mongo-express 管理界面访问
http://localhost:8081,登录账号mongoexpressuser/mongoexpresspass
效果图:

二、编写 docker-compose.yml
在任意目录(例如 D:\docker\mongo)下创建文件 docker-compose.yml,内容如下:
services:
mongo:
image: mongo
container_name: mongo
restart: always
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 123456
volumes:
- mongo_data:/data/db
mongo-express:
image: mongo-express
restart: always
ports:
- "8081:8081"
environment:
ME_CONFIG_MONGODB_URL: "mongodb://root:123456@mongo:27017/"
ME_CONFIG_BASICAUTH_ENABLED: "true"
ME_CONFIG_BASICAUTH_USERNAME: "mongoexpressuser"
ME_CONFIG_BASICAUTH_PASSWORD: "mongoexpresspass"
volumes:
mongo_data:
这个文件定义了:
-
mongo服务:使用官方镜像,映射端口 27017,设置 root 密码,并用卷持久化数据。 -
mongo-express服务:连接上面的 MongoDB,提供 Web 界面,同时增加了基础认证保护。
三、启动服务 —— 遇到镜像下载问题
打开终端(PowerShell 或 CMD),进入该目录,执行:
docker compose up -d
预期行为: Docker 会自动拉取 mongo 和 mongo-express 镜像,然后创建并启动容器。
实际遇到的问题: 拉取镜像时卡住或报错,典型错误信息:
Error response from daemon: unable to fetch descriptor ... content size of zero
或
failed to resolve reference ... no such host
问题原因分析
Docker Hub 官方镜像仓库位于海外,国内网络连接不稳定,导致拉取超时或返回无效数据。这是国内开发者的常见痛点。
四、解决方案:配置国内镜像加速器
通过为 Docker 配置镜像加速器(registry mirror),可以让拉取请求转发到国内的镜像源,速度大幅提升。
步骤
-
右键系统托盘中的 Docker 图标 → Settings → Docker Engine。
-
在打开的 JSON 配置中,添加或修改
registry-mirrors字段为以下可用地址:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://mirror.ccs.tencentyun.com"
]
}
-
点击 Apply & Restart,等待 Docker 重启完成。
以上三个加速器分别来自 DaoCloud、dockerproxy 和腾讯云,目前稳定可用。你也可以使用阿里云个人专属加速器(登录容器镜像服务获取)。
重新拉取并启动
配置加速器后,再次执行:
docker compose up -d
此时可以看到镜像拉取进度飞快,几秒钟或一两分钟即可完成(取决于网络)。随后容器成功启动。
五、验证部署
-
查看容器状态:
docker compose ps应该显示两个容器
mongo和mongo-express均为Up状态。 -
访问 mongo-express:
打开浏览器,输入http://localhost:8081,使用用户名mongoexpressuser密码mongoexpresspass登录。你将看到一个可视化的 MongoDB 管理界面,可以浏览、创建数据库和集合。 -
测试 MongoDB 连接(可选):
使用docker exec -it mongo mongosh -u root -p 123456进入 Mongo Shell,执行show dbs。
六、常见问题与维护
Q:配置加速器后仍然拉取失败?
A:可能是加速器地址失效,可以尝试更换其他地址(如阿里云加速器),或者暂时清空 registry-mirrors 使用 VPN 直连。
Q:如何停止并清理环境?
A:docker compose down 停止容器但保留数据卷;docker compose down -v 会同时删除数据卷(慎用)。
Q:如何修改 MongoDB 密码?
A:编辑 docker-compose.yml 中的 MONGO_INITDB_ROOT_PASSWORD,然后 docker compose down && docker compose up -d。
七、总结
通过本文,我们:
-
编写了
docker-compose.yml一键部署 MongoDB + mongo-express。 -
遇到了国内网络拉取镜像失败的问题。
-
学会了配置 Docker Desktop 的镜像加速器来解决该问题。
-
最终成功运行了完整的数据库开发环境。
整个过程无需手动安装 MongoDB 客户端工具,全部容器化,干净且可复现。希望这篇记录对你有帮助,欢迎留言交流!
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!
浙公网安备 33010602011771号