惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Last Watchdog
The Last Watchdog
K
Kaspersky official blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Spread Privacy
Spread Privacy
T
Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
MongoDB | Blog
MongoDB | Blog
V
Vulnerabilities – Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Help Net Security
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
小众软件
小众软件
Cloudbric
Cloudbric
The Hacker News
The Hacker News
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
Forbes - Security
Forbes - Security
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
AWS News Blog
AWS News Blog
Stack Overflow Blog
Stack Overflow Blog
N
News | PayPal Newsroom
P
Privacy & Cybersecurity Law Blog
TaoSecurity Blog
TaoSecurity Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
A
Arctic Wolf
www.infosecurity-magazine.com
www.infosecurity-magazine.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Scott Helme
Scott Helme
T
Tor Project blog
S
Secure Thoughts
Know Your Adversary
Know Your Adversary
P
Proofpoint News Feed
M
MIT News - Artificial intelligence
博客园 - 司徒正美
T
Threat Research - Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
Schneier on Security
Schneier on Security
B
Blog RSS Feed
AI
AI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Attack and Defense Labs
Attack and Defense Labs
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Project Zero
Project Zero
Hacker News: Ask HN
Hacker News: Ask HN

博客园 - work hard work smart

使用 LangChain + Hugging Face 构建文本向量化服务 SQLAlchemy 使用详解 Python 中使用 Elasticsearch 的完整指南 Qdrant 向量数据库使用指南 OpenEvals 快速入门:LLM 评估指南 DeepEval 快速入门:LLM 应用评估指南 LangSmith 批量评估完全指南 Qwen-Agent 入门指南:快速构建智能体应用 LangSmith 集成实战:从追踪到评估的完整指南 初识 go-zero:一款让你写后端更规范、更高效的 Go 微服务框架 RAG 中为什么需要 Rerank,以及如何使用 Rerank LangChain4j RAG 核心组件与组合方式 如何使用 Elasticsearch 进行全文检索和向量检索 MinerU Docker 部署指南 5 分钟上手:为 Cline 配置一个免费的 MCP 天气服务 Neo4j 图数据库安装与 Spring Boot 集成实战指南 LangFuse 实战指南:用 @observe 三行代码给 LLM 应用加上全链路追踪 Function Call 深度解析:让大模型从"嘴炮"到"实干"的技术革命 Spring AI 提示词模板实战:告别硬编码,实现提示词工程化管理 LangChain4j 实战指南:用 Java 轻松构建 AI 应用 Spring AI 对话短期记忆实战:让大模型拥有"记忆力" Spring AI 提示词工程实战:让大模型更懂你的意图 Spring AI ChatClient 深度解析:优雅构建大模型应用的利器 Spring AI Alibaba DashScopeChatModel 实战 Spring 中 SSE 流式输出的多种实现方式详解 OpenSandbox 实战指南:为 AI Agent 构建安全的代码执行沙箱 在本机启动 LangGraph 开发服务器:完整指南 DeepAgents中Backend的奥秘:让AI Agent拥有文件操作能力 为什么选择 Go 开发 Web 接口?从入门到实践 智能搜索DeepAgent笔记 RAG学习笔记2--系统查询流程 RAG学习笔记1--系统文件导入流程 百炼 WebSearch 快速入门指南 Python 连接 MongoDB 完整指南:从连接配置到增删改查实战 使用 Attu 可视化管理 Milvus 向量数据库 在 Windows Docker 中快速安装 Milvus 2.5.6 minio使用 Spark 集群搭建 hadoop集群安装 Spring AI Alibaba 入门实战 Windows 安装 OpenClaw 实战指南 MyBatis 核心流程和原理 Idea中安装Claude code插件 Spark 编程 使用Matplotlib 绘制直方图 Flink安装部署 Flume安装 查找导致cpu过高的代码方法 JVisualVM监控远程Java进程 jmap jacoco多模块生成java单元测试报告实践 arthas 使用demo LockSupport Exchanger CyclicBarrier CountDownLatch 手把手教你用python开始第一个机器学习项目
一行命令搞定 MongoDB 开发环境:Docker Compose 部署 + 可视化管理
work hard work smart · 2026-04-27 · via 博客园 - work hard work smart

一行命令搞定 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

效果图:

image

二、编写 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 会自动拉取 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),可以让拉取请求转发到国内的镜像源,速度大幅提升。

步骤

  1. 右键系统托盘中的 Docker 图标 → Settings → Docker Engine。

  2. 在打开的 JSON 配置中,添加或修改 registry-mirrors 字段为以下可用地址:

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}
  1. 点击 Apply & Restart,等待 Docker 重启完成。

以上三个加速器分别来自 DaoCloud、dockerproxy 和腾讯云,目前稳定可用。你也可以使用阿里云个人专属加速器(登录容器镜像服务获取)。

重新拉取并启动

配置加速器后,再次执行:

此时可以看到镜像拉取进度飞快,几秒钟或一两分钟即可完成(取决于网络)。随后容器成功启动。

五、验证部署

  • 查看容器状态:

    应该显示两个容器 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

七、总结

通过本文,我们:

  1. 编写了 docker-compose.yml 一键部署 MongoDB + mongo-express。

  2. 遇到了国内网络拉取镜像失败的问题。

  3. 学会了配置 Docker Desktop 的镜像加速器来解决该问题。

  4. 最终成功运行了完整的数据库开发环境。

整个过程无需手动安装 MongoDB 客户端工具,全部容器化,干净且可复现。希望这篇记录对你有帮助,欢迎留言交流!