本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
MongoDB 是一个开源的跨平台文档型数据库程序,属于 NoSQL 数据库类别。它使用类 JSON 文档(BSON)存储数据,支持动态模式,无需预先定义表结构。MongoDB 由 MongoDB Inc. 开发,发布于 Server Side Public License (SSPL) 和 Apache License 许可下。其核心优势在于提供高可用性和轻松扩展性,适用于需要灵活数据模型和大规模数据存储的应用场景。
MongoDB 适用于以下场景:
8.0.15-noble, 8.0-noble, 8-noble, noble
Dockerfile
7.0.25-jammy, 7.0-jammy, 7-jammy
Dockerfile
6.0.26-jammy, 6.0-jammy, 6-jammy
Dockerfile
8.0.15, 8.0, 8, latest
对应基础镜像:8.0.15-noble
7.0.25, 7.0, 7
对应基础镜像:7.0.25-jammy
6.0.26, 6.0, 6
对应基础镜像:6.0.26-jammy
使用 docker run 命令启动一个 MongoDB 容器:
$ docker run --name some-mongo -d amd64/mongo:tag
some-mongo:自定义容器名称tag:指定 MongoDB 版本标签(如 8.0.15-noble,完整标签列表见上文)MongoDB 默认监听 27017 端口,可通过 Docker 网络实现容器间通信。示例:启动客户端容器连接到已运行的 MongoDB 实例:
$ docker run -it --network some-network --rm amd64/mongo mongosh --host some-mongo test
some-network:Docker 网络名称(需提前创建或使用默认网络)some-mongo:目标 MongoDB 容器名称test:连接的数据库名称以下是 compose.yaml 配置示例,包含 MongoDB 服务和管理界面(mongo-express):
services: mongo: image: amd64/mongo:8.0.15-noble # 指定版本标签 restart: always environment: MONGO_INITDB_ROOT_USERNAME: root # 初始化 root 用户 MONGO_INITDB_ROOT_PASSWORD: example # root 用户密码 volumes: - mongo-data:/data/db # 持久化数据存储 mongo-express: image: mongo-express restart: always ports: - "8081:8081" # 暴露管理界面端口 environment: ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/ # 连接 MongoDB 的 URL ME_CONFIG_BASICAUTH_ENABLED: "true" # 启用基础认证 ME_CONFIG_BASICAUTH_USERNAME: mongoexpressuser # 管理界面用户名 ME_CONFIG_BASICAUTH_PASSWORD: mongoexpresspass # 管理界面密码 depends_on: - mongo # 依赖 MongoDB 服务 volumes: mongo-data: # 定义命名卷,用于持久化 MongoDB 数据
启动服务:
$ docker compose up -d
访问管理界面:http://localhost:8081
使用 docker exec 命令获取容器内 bash 终端:
$ docker exec -it some-mongo bash
通过 Docker 容器日志查看 MongoDB 服务输出:
$ docker logs some-mongo
可通过命令行参数直接传递 mongod 配置项。示例:启用查询分析器(profiler):
$ docker run --name some-mongo -d amd64/mongo --profile 1
在 docker-compose 中配置:
services: mongo: image: amd64/mongo command: --profile 1 # 传递 mongod 参数
查看所有支持的参数:
$ docker run -it --rm amd64/mongo --help
若需复杂配置,可挂载自定义 mongod.conf 文件:
准备配置文件(如 /my/custom/mongod.conf):
storage: dbPath: /data/db journal: enabled: true net: port: 27017 bindIp: 0.0.0.0
启动容器时挂载配置文件:
$ docker run --name some-mongo -v /my/custom:/etc/mongo -d amd64/mongo --config /etc/mongo/mongod.conf
-v /my/custom:/etc/mongo:将主机目录 /my/custom 挂载到容器内 /etc/mongo--config /etc/mongo/mongod.conf:指定配置文件路径容器启动时可通过环境变量初始化 MongoDB 实例(仅首次启动且数据目录为空时生效):
MONGO_INITDB_ROOT_USERNAME 与 MONGO_INITDB_ROOT_PASSWORDroot 角色(权限覆盖所有数据库)$ docker run -d --name some-mongo \ -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \ -e MONGO_INITDB_ROOT_PASSWORD=secret \ amd64/mongo
使用 mongosh 连接:
$ docker run -it --rm amd64/mongo mongosh --host some-mongo -u mongoadmin -p secret --authenticationDatabase admin
MONGO_INITDB_DATABASE.js 文件)的默认数据库testMONGO_INITDB_DATABASE=appdb,则 /docker-entrypoint-initdb.d/*.js 脚本默认在 appdb 数据库上下文执行可通过文件注入敏感信息(如密码),环境变量名后添加 _FILE 后缀,值为容器内文件路径。示例:
$ docker run --name some-mongo \ -e MONGO_INITDB_ROOT_PASSWORD_FILE=/run/secrets/mongo-root-password \ -v /host/secrets:/run/secrets \ amd64/mongo
/host/secrets/mongo-root-password:主机上存储密码的文件容器首次启动时,/docker-entrypoint-initdb.d 目录下的 .sh 和 .js 文件会按字母顺序执行,用于初始化数据库(如创建用户、插入数据)。
init.js 文件:// 创建普通用户并授权 db.createUser({ user: "appuser", pwd: "apppass", roles: [{ role: "readWrite", db: "appdb" }] }); // 插入测试数据 db.appdb.insertOne({ name: "Initial Data", value: "Hello MongoDB" });
$ docker run --name some-mongo -v /host/init-scripts:/docker-entrypoint-initdb.d -d amd64/mongo
/host/init-scripts:主机上存放初始化脚本的目录MongoDB 数据默认存储在容器内 /data/db 目录,建议通过以下方式持久化数据:
$ docker run --name some-mongo -v mongo-data:/data/db -d amd64/mongo
mongo-data:命名卷,由 Docker 管理,数据持久化于主机 /var/lib/docker/volumes/ 目录$ docker run --name some-mongo -v /host/data:/data/db -d amd64/mongo
SERVER-8600 问题),建议使用 Docker 卷替代。使用 mongodump 工具导出数据,示例:
$ docker exec some-mongo sh -c 'exec mongodump -d appdb --archive' > /host/backups/appdb.archive
appdb:需备份的数据库名称/host/backups/appdb.archive:主机上的备份文件路径MongoDB 软件许可遵循 Server Side Public License (SSPL) v1 和 Apache License。注意:2018 年 10 月 16 日之后的版本从 AGPL 变更为 SSPLv1。
镜像中包含的其他软件(如基础系统组件、Bash 等)可能遵循不同许可证,详细信息见 repo-info 仓库。
使用本镜像需确保符合所有包含软件的许可证要求。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429