
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意: 这是https://hub.docker.com/_/rabbitmq的`i386`架构构建的“每架构”仓库——更多信息,请参见官方镜像文档中的“https://github.com/docker-library/official-images#architectures-other-than-amd64”和官方镜像FAQ中的“https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what”。
维护者:
https://github.com/docker-library/rabbitmq
获取帮助:
https://dockr.ly/comm-slack、Server Fault、https://unix.stackexchange.com/help/on-topic 或 https://stackoverflow.com/help/on-topic
Dockerfile链接https://github.com/docker-library/rabbitmq/blob/421249429d60a199a8e63eae8914bf19f7aba49b/4.2-rc/alpine/Dockerfile
https://github.com/docker-library/rabbitmq/blob/aaf82bfff4fd5ee6c98ec4ce7815e7e580066892/4.2-rc/alpine/management/Dockerfile
https://github.com/docker-library/rabbitmq/blob/afa514ae410f3f21127291c2a827c7ed8deda515/4.1/alpine/Dockerfile
https://github.com/docker-library/rabbitmq/blob/01055a3ed6f0a7a40d4ff1d17d3f0758039e431f/4.1/alpine/management/Dockerfile
https://github.com/docker-library/rabbitmq/blob/472c590ec4dddf4494c8ed6576d6d78588e3cd35/4.0/alpine/Dockerfile
https://github.com/docker-library/rabbitmq/blob/36e4d246e934a96b1c3a920e398f96434f3fc34c/4.0/alpine/management/Dockerfile
https://github.com/docker-library/rabbitmq/blob/f60bd8e290f826c6021cbd66e89de6a7ba3a9174/3.13/alpine/Dockerfile
https://github.com/docker-library/rabbitmq/blob/36e4d246e934a96b1c3a920e398f96434f3fc34c/3.13/alpine/management/Dockerfile
提交issue的位置:
https://github.com/docker-library/rabbitmq/issues?q=
支持的架构: (https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/rabbitmq/, https://hub.docker.com/r/arm32v6/rabbitmq/, https://hub.docker.com/r/arm32v7/rabbitmq/, https://hub.docker.com/r/arm64v8/rabbitmq/, https://hub.docker.com/r/i386/rabbitmq/, https://hub.docker.com/r/ppc64le/rabbitmq/, https://hub.docker.com/r/riscv64/rabbitmq/, https://hub.docker.com/r/s390x/rabbitmq/
已发布镜像工件详情:
https://github.com/docker-library/repo-info/blob/master/repos/rabbitmq(https://github.com/docker-library/repo-info/commits/master/repos/rabbitmq)
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Frabbitmq
https://github.com/docker-library/official-images/blob/master/library/rabbitmq(https://github.com/docker-library/official-images/commits/master/library/rabbitmq)
本描述的来源:
https://github.com/docker-library/docs/tree/master/rabbitmq(https://github.com/docker-library/docs/commits/master/rabbitmq)
RabbitMQ是开源的消息代理软件(有时称为面向消息的中间件),它实现了高级消息队列协议(AMQP)。RabbitMQ服务器使用Erlang编程语言编写,并基于Open Telecom Platform框架构建,支持集群和故障转移。用于与代理交互的客户端库适用于所有主要编程语言。
***.org/wiki/RabbitMQ
关于RabbitMQ需要注意的重要事项之一是,它基于所谓的“节点名称”(默认情况下为主机名)存储数据。这对于Docker中的使用意味着,我们应该为每个守护进程显式指定-h/--hostname,以避免随机主机名并能跟踪数据:
console$ docker run -d --hostname my-rabbit --name some-rabbit i386/rabbitmq:3
这将启动一个RabbitMQ容器,监听默认端口5672。稍等片刻后,执行docker logs some-rabbit,你将在输出中看到类似以下的块:
=INFO REPORT==== 6-Jul-2015::20:47:02 === node : rabbit@my-rabbit home dir : /var/lib/rabbitmq config file(s) : /etc/rabbitmq/rabbitmq.config cookie hash : UoNOcDhfxW9uoZ92wh6BjA== log : tty sasl log : tty database dir : /var/lib/rabbitmq/mnesia/rabbit@my-rabbit
注意其中的database dir,特别是它在文件存储路径末尾附加了我的“节点名称”。此镜像默认将/var/lib/rabbitmq的全部内容设为卷。
有关RabbitMQ本身支持的环境变量列表,请参见https://www.rabbitmq.com/configure.html#supported-environment-variables
警告: 从RabbitMQ 3.9开始,下面列出的所有特定于Docker的变量均已弃用且不再使用。请改用配置文件;访问https://www.rabbitmq.com/configure.html了解有关配置文件的更多信息。作为起点,3.8版本的镜像会打印出根据提供的环境变量生成的配置文件。
bash# 3.9及以上版本不可用 RABBITMQ_DEFAULT_PASS_FILE RABBITMQ_DEFAULT_USER_FILE RABBITMQ_MANAGEMENT_SSL_CACERTFILE RABBITMQ_MANAGEMENT_SSL_CERTFILE RABBITMQ_MANAGEMENT_SSL_DEPTH RABBITMQ_MANAGEMENT_SSL_FAIL_IF_NO_PEER_CERT RABBITMQ_MANAGEMENT_SSL_KEYFILE RABBITMQ_MANAGEMENT_SSL_VERIFY RABBITMQ_SSL_CACERTFILE RABBITMQ_SSL_CERTFILE RABBITMQ_SSL_DEPTH RABBITMQ_SSL_FAIL_IF_NO_PEER_CERT RABBITMQ_SSL_KEYFILE RABBITMQ_SSL_VERIFY RABBITMQ_VM_MEMORY_HIGH_WATERMARK
如果希望更改默认的guest/guest用户名和密码,可以使用RABBITMQ_DEFAULT_USER和RABBITMQ_DEFAULT_PASS环境变量。这些变量以前在特定于Docker的入口点shell脚本中可用,现在直接在RabbitMQ中可用。
console$ docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password i386/rabbitmq:3-management
然后,你可以在浏览器中访问http://localhost:8080或http://host-ip:8080,使用user/password登录管理控制台。
如果希望更改默认vhost,可以使用RABBITMQ_DEFAULT_VHOST环境变量:
console$ docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost i386/rabbitmq:3-management
RabbitMQ包含显式跟踪和管理内存使用的功能,因此需要了解cgroup施加的限制(例如https://docs.docker.com/config/containers/resource_constraints/#limit-a-containers-access-to-memory)。
上游配置中对应的设置是rabbitmq.conf中的vm_memory_high_watermark,其在文档的“https://www.rabbitmq.com/memory.html”部分有描述。如果你通过`vm_memory_high_watermark.relative`设置相对限制,RabbitMQ将基于主机的总内存而非容器运行时设置的限制计算其限制。
有关Cookie及其必要性的更多信息,请参见https://www.rabbitmq.com/clustering.html#erlang-cookie。要设置一致的Cookie(对于集群特别有用,也适用于通过`rabbitmqctl`进行远程/跨容器管理),请提供Cookie文件(默认位置为`/var/lib/rabbitmq/.erlang.cookie`)。
例如,你可以通过文件提供Cookie(如使用https://docs.docker.com/engine/swarm/secrets/):
consoledocker service create ... --secret source=my-erlang-cookie,target=/var/lib/rabbitmq/.erlang.cookie ... i386/rabbitmq
(注意,为了容器中的Erlang能够正确读取Cookie文件,可能还需要指定uid=XXX,gid=XXX,mode=0600。有关更多详细信息,请参见https://docs.docker.com/reference/cli/docker/service/create/#secret。)
提供了第二组标签,其中默认安装并启用了https://www.rabbitmq.com/management.html,可在标准管理端口***上访问,默认用户名和密码为`guest`/`guest`:
console$ docker run -d --hostname my-rabbit --name some-rabbit i386/rabbitmq:3-management
你可以通过访问浏览器中的http://container-ip:15672来访问它,或者如果需要从主机外部访问,可以映射到8080端口:
console$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 i386/rabbitmq:3-management
然后,你可以在浏览器中访问http://localhost:8080或http://host-ip:8080。
创建Dockerfile可在运行时启用插件。要查看镜像中存在的所有插件列表,请执行rabbitmq-plugins list
DockerfileFROM docker.xuanyuan.run/rabbitmq:3.8-management RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp
你也可以将文件挂载到/etc/rabbitmq/enabled_plugins,内容为以句点结尾的Erlang原子列表。
enabled_plugins示例
bash[rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].
如果需要配置,建议提供适当的/etc/rabbitmq/rabbitmq.conf文件(参见RabbitMQ文档的“[配置文件]”部分了解更多详情](https://www.rabbitmq.com/configure.html#configuration-files)),例如通过绑定挂载、https://docs.docker.com/engine/swarm/configs/或带有`COPY`指令的简短`Dockerfile`。
或者,可以使用RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS环境变量,其语法在Erlang OTP设计原则用户指南的第7.8节(“配置应用程序”)中有描述(-ApplName的适当值为-rabbit),此方法需要略微不同地重现其在rabbitmq.conf中的等效条目。例如,配置https://www.rabbitmq.com/configure.html#config-items类似于`-e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbit channel_max 4007"。其中变量channel_max与其值4007`之间的空格在环境中转换时正确变为逗号。
参见https://github.com/docker-library/faq#healthcheck和https://github.com/docker-library/rabbitmq/pull/174#issuecomment-452002696,了解此镜像未定义默认`HEALTHCHECK`的详细解释,以及实现自己的健康/存活/就绪检查的建议。
i386/rabbitmq镜像有多种版本,每种版本设计用于特定用例。
i386/rabbitmq:<version>这是默认镜像。如果你不确定自己的需求,可能需要使用此版本。它设计为既可作为临时容器使用(挂载源代码并启动容器以启动应用),也可作为构建其他镜像的基础。
i386/rabbitmq:<version>-alpine此镜像基于流行的https://alpinelinux.org,可在https://hub.docker.com/_/alpine中获取。Alpine Linux比大多数发行版基础镜像小得多(~5MB),因此通常会生成更精简的镜像。
当最终镜像大小尽可能小是你的主要关注点时,此变体非常有用。需要注意的主要事项是,它使用https://musl.libc.org而非https://www.etalabs.net/compare_libcs.html,因此软件通常会因libc要求/假设的深度而遇到问题。参见此Hacker News评论线程了解可能出现的问题以及使用基于Alpine的镜像的优缺点比较。
为最小化镜像大小,基于Alpine的镜像中通常不包含额外的相关工具(如git或bash)。以此镜像为基础,在你自己的Dockerfile中添加所需的工具(如果你不熟悉如何安装软件包,请参见https://hub.docker.com/_/alpine/中的示例)。
查看此镜像中包含的软件的https://www.rabbitmq.com/mpl.html。
与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可信息可能位于https://github.com/docker-library/repo-info/tree/master/repos/rabbitmq中。
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用符合其中包含的所有软件的相关许可。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 i386/rabbitmq 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: