如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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
https://github.com/docker-library/mongo/blob/***e190aa0ba8cfd07004a7a74791b270a3206/8.0/Dockerfile
7.0.25-jammy, 7.0-jammy, 7-jammy
https://github.com/docker-library/mongo/blob/***e190aa0ba8cfd07004a7a74791b270a3206/7.0/Dockerfile
6.0.26-jammy, 6.0-jammy, 6-jammy
https://github.com/docker-library/mongo/blob/d9efcb7f46c4a17da2fdc9dbb4ef644f4f92053d/6.0/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 容器:
console$ docker run --name some-mongo -d amd64/mongo:tag
some-mongo:自定义容器名称tag:指定 MongoDB 版本标签(如 8.0.15-noble,完整标签列表见上文)MongoDB 默认监听 27017 端口,可通过 Docker 网络实现容器间通信。示例:启动客户端容器连接到已运行的 MongoDB 实例:
console$ 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):
yamlservices: 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 数据
启动服务:
console$ docker compose up -d
访问管理界面:http://localhost:8081
使用 docker exec 命令获取容器内 bash 终端:
console$ docker exec -it some-mongo bash
通过 Docker 容器日志查看 MongoDB 服务输出:
console$ docker logs some-mongo
可通过命令行参数直接传递 mongod 配置项。示例:启用查询分析器(profiler):
console$ docker run --name some-mongo -d amd64/mongo --profile 1
在 docker-compose 中配置:
yamlservices: mongo: image: amd64/mongo command: --profile 1 # 传递 mongod 参数
查看所有支持的参数:
console$ docker run -it --rm amd64/mongo --help
若需复杂配置,可挂载自定义 mongod.conf 文件:
准备配置文件(如 /my/custom/mongod.conf):
inistorage: dbPath: /data/db journal: enabled: true net: port: 27017 bindIp: 0.0.0.0
启动容器时挂载配置文件:
console$ 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 角色(权限覆盖所有数据库)console$ docker run -d --name some-mongo \ -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \ -e MONGO_INITDB_ROOT_PASSWORD=secret \ amd64/mongo
使用 mongosh 连接:
console$ 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 后缀,值为容器内文件路径。示例:
console$ 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 文件:javascript// 创建普通用户并授权 db.createUser({ user: "appuser", pwd: "apppass", roles: [{ role: "readWrite", db: "appdb" }] }); // 插入测试数据 db.appdb.insertOne({ name: "Initial Data", value: "Hello MongoDB" });
console$ docker run --name some-mongo -v /host/init-scripts:/docker-entrypoint-initdb.d -d amd64/mongo
/host/init-scripts:主机上存放初始化脚本的目录MongoDB 数据默认存储在容器内 /data/db 目录,建议通过以下方式持久化数据:
console$ docker run --name some-mongo -v mongo-data:/data/db -d amd64/mongo
mongo-data:命名卷,由 Docker 管理,数据持久化于主机 /var/lib/docker/volumes/ 目录console$ docker run --name some-mongo -v /host/data:/data/db -d amd64/mongo
SERVER-8600 问题),建议使用 Docker 卷替代。使用 mongodump 工具导出数据,示例:
console$ 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 等)可能遵循不同许可证,详细信息见 https://github.com/docker-library/repo-info/tree/master/repos/mongo%E3%80%82
使用本镜像需确保符合所有包含软件的许可证要求。
以下是 amd64/mongo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务