本镜像是 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 # 跟踪日志输出
MongoDB 支持通过 mongod 命令行参数自定义配置,镜像入口点会将参数传递给 mongod。例如启用查询分析器:
bashdocker run --name some-mongo -d arm64v8/mongo:tag --profile 1 # 分析所有查询
/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)的目标数据库名称 | 可选 |
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 目录,为避免数据丢失,建议通过以下方式持久化数据:
bashdocker run --name some-mongo -v mongo-data:/data/db -d arm64v8/mongo:tag
(mongo-data 为命名卷,由 Docker 管理存储路径)
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 许可证说明 及 镜像元数据仓库。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429