MongoDB是一种文档型数据库,具备高可用性和易扩展性,它采用灵活的文档模型(以BSON格式存储数据,类似JSON),能够高效处理非结构化和半结构化数据,通过副本集机制保障数据的高可用性,同时支持分片集群实现水平扩展,可轻松应对数据量和访问量的增长,适用于各类需要灵活存储和弹性扩展的应用场景。
收藏数: 1.1万
下载次数: 4699729157
类型:
library/mongoDocker 社区
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
(关于 "Shared" 和 "Simple" 标签的区别,参见 FAQ。)
8.0.15-noble、8.0-noble、8-noble、noble
Dockerfile
8.0.15-windowsservercore-ltsc2025、8.0-windowsservercore-ltsc2025、8-windowsservercore-ltsc2025、windowsservercore-ltsc2025
Dockerfile
8.0.15-windowsservercore-ltsc2022、8.0-windowsservercore-ltsc2022、8-windowsservercore-ltsc2022、windowsservercore-ltsc2022
Dockerfile
8.0.15-nanoserver-ltsc2022、8.0-nanoserver-ltsc2022、8-nanoserver-ltsc2022、nanoserver-ltsc2022
Dockerfile
7.0.25-jammy、7.0-jammy、7-jammy
Dockerfile
7.0.25-windowsservercore-ltsc2025、7.0-windowsservercore-ltsc2025、7-windowsservercore-ltsc2025
Dockerfile
7.0.25-windowsservercore-ltsc2022、7.0-windowsservercore-ltsc2022、7-windowsservercore-ltsc2022
Dockerfile
7.0.25-nanoserver-ltsc2022、7.0-nanoserver-ltsc2022、7-nanoserver-ltsc2022
Dockerfile
6.0.26-jammy、6.0-jammy、6-jammy
Dockerfile
6.0.26-windowsservercore-ltsc2025、6.0-windowsservercore-ltsc2025、6-windowsservercore-ltsc2025
Dockerfile
6.0.26-windowsservercore-ltsc2022、6.0-windowsservercore-ltsc2022、6-windowsservercore-ltsc2022
Dockerfile
6.0.26-nanoserver-ltsc2022、6.0-nanoserver-ltsc2022、6-nanoserver-ltsc2022
Dockerfile
8.0.15、8.0、8、latest
8.0.15-noble(Dockerfile)8.0.15-windowsservercore-ltsc2025(Dockerfile)8.0.15-windowsservercore-ltsc2022(Dockerfile)8.0.15-windowsservercore、8.0-windowsservercore、8-windowsservercore、windowsservercore
8.0.15-windowsservercore-ltsc2025(Dockerfile)8.0.15-windowsservercore-ltsc2022(Dockerfile)8.0.15-nanoserver、8.0-nanoserver、8-nanoserver、nanoserver
8.0.15-nanoserver-ltsc2022(Dockerfile)(其他版本的 Shared Tags 结构类似,完整列表见原文链接)
amd64、arm64v8、windows-amd64(更多信息)repos/mongo/ 目录(含镜像元数据、传输大小等)library/mongo 标签mongo/ 目录MongoDB 是一款免费开源的跨平台文档型数据库,属于 NoSQL 数据库范畴,使用类 JSON 格式的文档存储数据(支持模式定义)。由 MongoDB Inc. 开发,基于 Server Side Public License(SSPL)和 Apache License 双重许可发布。
最初由 10gen 公司(现 MongoDB Inc.)于 2007 年 10 月开发,作为平台即服务(PaaS)产品的组件,2009 年转向开源开发模式,提供商业支持和服务。目前已被 MetLife、巴克莱、ADP、UPS、维亚康姆、纽约时报等众多机构采用,是最流行的 NoSQL 数据库之一。
MongoDB 默认配置无需认证即可访问,包括管理员用户。若计划将实例暴露到公网,强烈建议设置 root 用户名和密码。具体方法见下文“环境变量”部分,或参考 MongoDB 安全文档。
bash$ docker run --name some-mongo -d mongo:tag
some-mongo:自定义容器名称tag:指定 MongoDB 版本标签(如 8.0-noble,见“支持的标签”)MongoDB 默认监听 27017 端口,可通过 Docker 网络连接。示例:启动另一个容器,使用 mongosh(4.x 版本用 mongo)连接到上述 some-mongo 实例:
bash$ docker run -it --network some-network --rm mongo mongosh --host some-mongo test
--network some-network:确保两个容器在同一网络(若未指定网络,需先用 docker network create some-network 创建)示例 compose.yaml 文件:
yamlservices: mongo: image: mongo restart: always environment: MONGO_INITDB_ROOT_USERNAME: root # 初始化 root 用户名 MONGO_INITDB_ROOT_PASSWORD: example # 初始化 root 密码 mongo-express: # 可选的 Web 管理界面 image: mongo-express restart: always ports: - 8081:8081 # 映射到主机 8081 端口 environment: ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/ # 连接 mongo 服务 ME_CONFIG_BASICAUTH_ENABLED: true # 启用基础认证 ME_CONFIG_BASICAUTH_USERNAME: mongoexpressuser # Web 界面用户名 ME_CONFIG_BASICAUTH_PASSWORD: mongoexpresspass # Web 界面密码
启动服务:
bash$ docker compose up
访问 `[***] 打开管理界面。
bash$ docker exec -it some-mongo bash
bash$ docker logs some-mongo
多数 MongoDB 配置可通过 mongod 命令行参数设置,镜像入口会将参数传递给 mongod。示例:启用查询分析器
bash$ docker run --name some-mongo -d mongo --profile 1
或在 compose.yaml 中指定:
yamlservices: mongo: image: mongo command: --profile 1 # 自定义参数
创建配置文件(如 /my/custom/mongod.conf),通过挂载和 --config 参数指定:
bash$ docker run --name some-mongo -v /my/custom:/etc/mongo -d mongo --config /etc/mongo/mongod.conf
/my/custom:主机配置文件目录/etc/mongo:容器内挂载路径容器首次启动且数据目录为空时,可通过环境变量初始化配置(数据目录非空时无效)。
MONGO_INITDB_ROOT_USERNAME 和 MONGO_INITDB_ROOT_PASSWORD创建管理员用户(admin 数据库,root 角色),并启用认证(mongod --auth)。示例:
bash# 启动带认证的 MongoDB $ docker run -d --network some-network --name some-mongo \ -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \ -e MONGO_INITDB_ROOT_PASSWORD=secret \ mongo # 连接到实例 $ docker run -it --rm --network some-network mongo \ mongosh --host some-mongo -u mongoadmin -p secret --authenticationDatabase admin some-db > db.getName(); # 输出 "some-db"
MONGO_INITDB_DATABASE指定 /docker-entrypoint-initdb.d/ 目录下初始化脚本(.js/.sh)的默认数据库(未指定则为 test)。
支持从文件加载敏感信息(如密码),只需在环境变量后加 _FILE。示例:
bash$ docker run --name some-mongo -e MONGO_INITDB_ROOT_PASSWORD_FILE=/run/secrets/mongo-root -d mongo
/run/secrets/mongo-root:容器内存储密码的文件路径容器首次启动时,会按字母顺序执行 /docker-entrypoint-initdb.d/ 目录下的 .sh 和 .js 文件。.js 文件通过 mongosh 执行,默认数据库由 MONGO_INITDB_DATABASE 指定。
/my/own/datadir)bash$ docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo
/data/db:MongoDB 默认数据目录Linux 镜像的内存映射文件与宿主文件系统不兼容,无法直接挂载数据目录。建议使用命名卷:
bash$ docker volume create mongo-data # 创建命名卷 $ docker run --name some-mongo -v mongo-data:/data/db -d mongo # 挂载卷
通过 docker exec 在容器内执行 mongodump:
bash$ docker exec some-mongo sh -c 'exec mongodump -d <database_name> --archive' > /host/path/backup.archive
<database_name>:需备份的数据库名/host/path/backup.archive:主机以下是 mongo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务