
arm64v8/mongo本镜像是 MongoDB 官方镜像的 arm64v8 架构专用版本,基于 MongoDB 官方镜像 构建。MongoDB 是一个开源的面向文档的 NoSQL 数据库,采用 JSON 类文档格式存储数据,支持动态模式,提供高可用性和灵活的水平扩展能力。本镜像适用于在 arm64v8 架构环境中快速部署 MongoDB 数据库服务,满足对灵活数据模型、高可用性和可扩展性有需求的应用场景。
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)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-jammybashdocker 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.yamlyamlservices: 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 管理界面。
bashdocker exec -it some-mongo bash # "some-mongo" 为容器名称
bashdocker logs some-mongo # 实时日志 docker logs -f some-mongo # 跟踪日志输出
方法 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 # 指定配置文件路径
| 变量名 | 作用 | 是否必需 |
|---|---|---|
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"
支持通过文件注入敏感信息(如密码),需在环境变量后添加 _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
首次启动容器时,可通过 /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 等)可能遵循不同许可证,用户需自行确保使用合规性。详细信息可参考 MongoDB 许可证说明 及 镜像元数据仓库。


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