
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
基于官方Mongo镜像3.0.15版本的commit https://github.com/docker-library/mongo/tree/https://github.com/docker-library/mongo/tree/7b2fe2cd853161fdb6d28d318e9e7968e51d0ee3%E6%9E%84%E5%BB%BA%EF%BC%8C%E4%B8%93%E6%B3%A8%E4%BA%8E%E6%8F%90%E4%BE%9B3.x%E4%B9%8B%E5%89%8D%E7%89%88%E6%9C%AC%E7%9A%84MongoDB%E6%94%AF%E6%8C%81%E3%80%82
2.6.0, 2.6, latest https://github.com/manios/mongo-docker/blob/master/2.6/Dockerfilehttps://images.microbadger.com/badges/image/manios/mongo.svg](http://microbadger.com/images/manios/mongo) https://img.shields.io/travis/manios/mongo-docker/master.svg](https://travis-ci.org/manios/mongo-docker/branches)
MongoDB(源自"humongous")是一个跨平台的面向文档的数据库。作为NoSQL数据库的一种,MongoDB摒弃了传统的基于表的关系型数据库结构,转而采用类JSON的文档(MongoDB称为BSON格式)和动态模式,使某些类型应用的数据集成更加简单快捷。MongoDB在GNU Affero通用公共许可证和Apache许可证的双重许可下发布,是免费开源软件。
最初由软件公司10gen(现MongoDB Inc.)于2007年10月开发,作为计划中的平台即服务产品的组件,该公司于2009年转向开源开发模式,10gen提供商业支持和其他服务。此后,MongoDB被众多主要网站和服务采用作为后端软件,包括Craigslist、eBay、Foursquare、SourceForge、Viacom和《纽约时报》等。MongoDB是最受欢迎的NoSQL数据库系统。
***.org/wiki/MongoDB
!https://raw.githubusercontent.com/docker-library/docs/01c***b2fe592c1f93a13b4e289ada0e3a1/mongo/logo.png
console$ docker run --name some-mongo -d manios/mongo
此镜像包含EXPOSE 27017(Mongo端口),因此标准容器链接会自动使其对链接的容器可用(如下例所示)。
console$ docker run --name some-app --link some-mongo:manios/mongo -d application-that-uses-mongo
mongo客户端连接console$ docker run -it --link some-mongo:mongo --rm manios/mongo sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'
有关使用和配置MongoDB(如副本集和分片)的信息,请参阅https://docs.mongodb.com/manual/%E3%80%82
如果要在MongoDB 3.0及以上版本中使用WiredTiger存储引擎而不创建配置文件,只需添加--storageEngine参数。WiredTiger是MongoDB 3.2及以上版本的默认存储引擎。请务必查看https://docs.mongodb.com/manual/release-notes/3.0-upgrade/#change-storage-engine-for-standalone-to-wiredtiger%E4%BA%86%E8%A7%A3%E5%A6%82%E4%BD%95%E4%BB%8E%E6%97%A7%E7%89%88%E6%9C%AC%E5%8D%87%E7%BA%A7%E3%80%82
console$ docker run --name some-mongo -d manios/mongo --storageEngine wiredTiger
MongoDB默认不需要身份验证,但可以配置为需要。有关此处描述的功能的更多详细信息,请参阅官方文档中详细描述https://docs.mongodb.com/manual/core/authentication/%E5%92%8Chttps://docs.mongodb.com/manual/core/authorization/%E7%9A%84%E9%83%A8%E5%88%86%E3%80%82
启动数据库
console$ docker run --name some-mongo -d manios/mongo --auth
添加初始管理员用户
console$ docker exec -it some-mongo mongo admin connecting to: admin > db.createUser({ user: 'jsmith', pwd: 'some-initial-password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); Successfully added user: { "user" : "jsmith", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
外部连接
console$ docker run -it --rm --link some-mongo:mongo manios/mongo mongo -u jsmith -p some-initial-password --authenticationDatabase admin some-mongo/some-db > db.getName(); some-db
将日志写入卷中的文件
传统上,此镜像将日志输出到stdout。要将日志写入文件,请使用以下命令:
console$ docker run \ -d \ --name some-mongo \ -v /my/own/logdir:/data/log \ manios/mongo:2.6 --logpath /data/log/mongo.log \
命令中的-v /my/own/logdir:/data/log部分将主机系统的/my/own/logdir目录挂载为容器内的/data/log,MongoDB默认会将日志文件写入该目录。
与主机共享相同的日期时间
默认情况下,Docker使用UTC作为其时区。如果希望容器内的日期时间与主机相同并在日志中正确显示,可以使用以下命令:
console$ docker run \ -d \ --name some-mongo \ -v /my/own/logdir:/data/log \ -v /etc/localtime:/etc/localtime \ manios/mongo:2.6 --logpath /data/log/mongo.log \
命令中的-v /etc/localtime:/etc/localtime部分将主机系统的/etc/localtime文件挂载为容器内的/etc/localtime。因此,MongoDB将在其日志文件中使用与主机相同的时区显示日期和时间。
重要说明:有多种方式存储Docker容器中运行的应用程序使用的数据。我们建议mongo镜像的用户熟悉可用选项,包括:
警告(Windows和OS X):Windows和OS X上的默认Docker设置使用VirtualBox VM托管Docker守护进程。不幸的是,VirtualBox用于在主机系统和Docker容器之间共享文件夹的机制与MongoDB使用的内存映射文件不兼容(参见https://www.virtualbox.org/ticket/819%E3%80%81https://docs.mongodb.com/manual/administration/production-notes/#fsync-on-directories%E5%92%8C%E7%9B%B8%E5%85%B3%E7%9A%84https://jira.mongodb.org/browse/SERVER-8600 bug)。这意味着无法运行将数据目录映射到主机的MongoDB容器。
Docker文档是了解不同存储选项和变体的良好起点,有多个博客和论坛帖子讨论并提供该领域的建议。我们在此仅展示上述后一种选项的基本步骤:
在主机系统的合适卷上创建数据目录,例如/my/own/datadir。
像这样启动mongo容器:
console$ docker run --name some-mongo -v /my/own/datadir:/data/db -d manios/mongo:tag
命令中的-v /my/own/datadir:/data/db部分将主机系统的/my/own/datadir目录挂载为容器内的/data/db,MongoDB默认会将其数据文件写入该目录。
此镜像还为/data/configdb定义了一个卷https://docs.mongodb.com/v2.6/reference/program/mongod/#cmdoption-configsvr%E3%80%82
请注意,启用SELinux的主机系统上的用户可能会遇到此问题。当前的解决方法是为新数据目录分配相关的SELinux策略类型,以便容器被允许访问它:
console$ chcon -Rt svirt_sandbox_file_t /my/own/datadir
mongo:<version>这是默认镜像。如果不确定自己的需求,可能需要使用此镜像。它设计为既可作为临时容器(挂载源代码并启动容器以启动应用程序),也可作为构建其他镜像的基础。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 manios/mongo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: