本镜像是 MongoDB 官方镜像的 arm64v8 架构专用版本,基于 https://hub.docker.com/_/mongo 构建。MongoDB 是一个开源的面向文档的 NoSQL 数据库,采用 JSON 类文档格式存储数据,支持动态模式,提供高可用性和灵活的水平扩展能力。本镜像适用于在 arm64v8 架构环境中快速部署 MongoDB 数据库服务,满足对灵活数据模型、高可用性和可扩展性有需求的应用场景。
Simple Tags
8.0.15-noble, 8.0-noble, 8-noble, noble(基于 Ubuntu Noble)7.0.25-jammy, 7.0-jammy, 7-jammy(基于 Ubuntu Jammy)6.0.26-jammy, 6.0-jammy, 6-jammy(基于 Ubuntu Jammy)Shared Tags
8.0.15, 8.0, 8, latest → 对应 8.0.15-noble7.0.25, 7.0, 7 → 对应 7.0.25-jammy6.0.26, 6.0, 6 → 对应 6.0.26-jammy基础启动命令
bashdocker run --name some-mongo -d arm64v8/mongo:tag
some-mongo:容器名称(自定义)。tag:指定 MongoDB 版本标签(如 8.0-noble,见 4.1 节)。27017。同一网络内连接
bashdocker network create some-network
bashdocker run --name some-mongo --network some-network -d arm64v8/mongo:tag
mongosh(6.0+)或 mongo(4.x)客户端连接:
bashdocker run -it --rm --network some-network arm64v8/mongo \ mongosh --host some-mongo test # "test" 为目标数据库名
示例 compose.yaml
yamlservices: mongo: image: arm64v8/mongo:8.0-noble restart: always environment: MONGO_INITDB_ROOT_USERNAME: root # 初始化 root 用户 MONGO_INITDB_ROOT_PASSWORD: example # root 用户密码 volumes: - mongo-data:/data/db # 挂载数据卷持久化数据 mongo-express: # 可选:MongoDB 管理界面 image: mongo-express restart: always ports: - "8081:8081" # 暴露管理界面端口 environment: ME_CONFIG_MONGODB_URL: "mongodb://root:example@mongo:27017/" # 连接 MongoDB ME_CONFIG_BASICAUTH_ENABLED: "true" # 启用基础认证 ME_CONFIG_BASICAUTH_USERNAME: admin # 管理界面用户名 ME_CONFIG_BASICAUTH_PASSWORD: admin123 # 管理界面密码 depends_on: - mongo volumes: mongo-data: # 定义命名卷存储 MongoDB 数据
启动命令
bashdocker compose up -d # 后台启动服务
访问 http://localhost:8081 即可打开 mongo-express 管理界面。
进入容器 Shell
bashdocker exec -it some-mongo bash # "some-mongo" 为容器名称
查看 MongoDB 日志
bashdocker logs some-mongo # 实时日志 docker logs -f some-mongo # 跟踪日志输出
4.6.1 自定义配置
方法 1:通过命令行参数
MongoDB 支持通过 mongod 命令行参数自定义配置,镜像入口点会将参数传递给 mongod。例如启用查询分析器:
bashdocker run --name some-mongo -d arm64v8/mongo:tag --profile 1 # 分析所有查询
方法 2:使用自定义配置文件
/my/custom/mongod.conf),示例内容:
yamlstorage: dbPath: /data/db journal: enabled: true net: port: 27017 bindIp: 0.0.0.0 security: authorization: enabled
bashdocker run --name some-mongo -v /my/custom:/etc/mongo -d arm64v8/mongo:tag \ --config /etc/mongo/mongod.conf # 指定配置文件路径
4.6.2 环境变量
| 变量名 | 作用 | 是否必需 |
|---|---|---|
MONGO_INITDB_ROOT_USERNAME | 初始化 root 用户的用户名(仅首次启动时生效) | 与密码配对必填 |
MONGO_INITDB_ROOT_PASSWORD | 初始化 root 用户的密码(仅首次启动时生效) | 与用户名配对必填 |
MONGO_INITDB_DATABASE | 指定初始化脚本(/docker-entrypoint-initdb.d/*.js)的目标数据库名称 | 可选 |
示例:启用认证并创建 root 用户
bashdocker run -d --name some-mongo \ -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \ -e MONGO_INITDB_ROOT_PASSWORD=secret \ arm64v8/mongo:tag
连接到数据库(需认证):
bashdocker run -it --rm arm64v8/mongo:tag \ mongosh --host some-mongo \ -u mongoadmin \ -p secret \ --authenticationDatabase admin # root 用户认证数据库为 "admin"
4.6.3 Docker Secrets
支持通过文件注入敏感信息(如密码),需在环境变量后添加 _FILE 后缀。例如:
bashdocker run --name some-mongo -d \ -e MONGO_INITDB_ROOT_USERNAME_FILE=/run/secrets/mongo-user \ # 从文件读取用户名 -e MONGO_INITDB_ROOT_PASSWORD_FILE=/run/secrets/mongo-pass \ # 从文件读取密码 --secret mongo-user \ # 挂载 Docker Secret(需提前创建) --secret mongo-pass \ arm64v8/mongo:tag
4.6.4 初始化新实例
首次启动容器时,可通过 /docker-entrypoint-initdb.d 目录执行初始化脚本(.js 或 .sh 文件,按字母顺序执行):
init.js):
javascript// 创建数据库 "mydb" 及用户 "myuser" db = db.getSiblingDB('mydb'); db.createUser({ user: 'myuser', pwd: 'mypassword', roles: [{ role: 'readWrite', db: 'mydb' }] }); // 插入测试数据 db.mycollection.insertOne({ name: 'test' });
bashdocker run --name some-mongo -v /path/to/init-scripts:/docker-entrypoint-initdb.d -d arm64v8/mongo:tag
数据存储
MongoDB 默认将数据存储在容器内的 /data/db 目录,为避免数据丢失,建议通过以下方式持久化数据:
方法 1:使用 Docker 命名卷(推荐)
bashdocker run --name some-mongo -v mongo-data:/data/db -d arm64v8/mongo:tag
(mongo-data 为命名卷,由 Docker 管理存储路径)
方法 2:绑定主机目录(不推荐 Windows/OS X)
bashdocker run --name some-mongo -v /host/path/to/data:/data/db -d arm64v8/mongo:tag
警告:Windows 和 OS X 系统中,绑定挂载的目录可能因文件系统兼容性问题导致 MongoDB 性能下降或崩溃,建议使用命名卷。
创建数据库备份
使用 mongodump 工具备份数据(需进入容器或通过网络连接):
bash# 从容器内备份到主机 docker exec some-mongo sh -c 'exec mongodump -d mydb --archive' > /host/backup/mydb.archive
MongoDB 软件的许可证遵循 Server Side Public License (SSPL) v1(2018 年 10 月 16 日后版本)及 Apache License(旧版本)。镜像中包含的其他软件(如基础系统组件、Bash 等)可能遵循不同许可证,用户需自行确保使用合规性。详细信息可参考 https://github.com/mongodb/mongo/blob/6ea81c883e7297be99884185c908c7ece385caf8/README#L89-L95 及 https://github.com/docker-library/repo-info/tree/master/repos/mongo%E3%80%82
以下是 arm64v8/mongo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务