MongoDB文档数据库提供高可用性及易扩展性。
下载次数: 1360552
类型:

amd64/mongoMongoDB 是一个开源的跨平台文档型数据库程序,属于 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 容器:
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 等)可能遵循不同许可证,详细信息见 repo-info 仓库。
使用本镜像需确保符合所有包含软件的许可证要求。
以下是 amd64/mongo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。

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