
如果你使用 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 的 arm32v5 架构构建的“每架构”仓库——更多信息,请参见官方镜像文档中的 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%E3%80%82
维护者:
https://github.com/docker-library/rabbitmq
获取帮助:
https://dockr.ly/comm-slack%E3%80%81Server Fault、https://unix.stackexchange.com/help/on-topic 或 https://stackoverflow.com/help/on-topic
Dockerfile 链接警告: 此镜像在 arm32v5 架构上不受支持
问题反馈地址:
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/%E3%80%81https://hub.docker.com/r/arm32v6/rabbitmq/%E3%80%81https://hub.docker.com/r/arm32v7/rabbitmq/%E3%80%81https://hub.docker.com/r/arm64v8/rabbitmq/%E3%80%81https://hub.docker.com/r/i386/rabbitmq/%E3%80%81https://hub.docker.com/r/ppc64le/rabbitmq/%E3%80%81https://hub.docker.com/r/riscv64/rabbitmq/%E3%80%81https://hub.docker.com/r/s390x/rabbitmq/
已发布镜像制品详情:
https://github.com/docker-library/repo-info/blob/master/repos/rabbitmq%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/rabbitmq%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Frabbitmq
https://github.com/docker-library/official-images/blob/master/library/rabbitmq%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/rabbitmq%EF%BC%89
此描述的来源:
https://github.com/docker-library/docs/tree/master/rabbitmq%EF%BC%88https://github.com/docker-library/docs/commits/master/rabbitmq%EF%BC%89
RabbitMQ是开源的消息代理软件(有时称为面向消息的中间件),它实现了高级消息队列协议(AMQP)。RabbitMQ服务器使用Erlang编程语言编写,并基于Open Telecom Platform框架构建,支持集群和故障转移。用于与代理交互的客户端库可用于所有主要编程语言。
***.org/wiki/RabbitMQ
!https://raw.githubusercontent.com/docker-library/docs/81187b7b50f5af5bdb64d75882f4d9c782ad52c3/rabbitmq/logo.png
关于RabbitMQ需要注意的重要事项之一是,它基于所谓的“节点名称”存储数据,节点名称默认为主机名。这对于Docker中的使用意味着,我们应该为每个守护进程显式指定 -h/--hostname,以避免随机主机名并能跟踪数据:
console$ docker run -d --hostname my-rabbit --name some-rabbit arm32v5/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 --detach --hostname my-rabbit --name some-rabbit \ --env RABBITMQ_DEFAULT_USER=user \ --env RABBITMQ_DEFAULT_PASS=password \ --publish 15672:15672 \ --publish 5672:5672 \ arm32v5/rabbitmq:management
然后,你可以在浏览器中访问 http://localhost:15672 或 http://host-ip:15672,使用 user/password 登录 https://www.rabbitmq.com/docs/management%E3%80%82
如果希望更改默认vhost,可以使用 RABBITMQ_DEFAULT_VHOST 环境变量:
console$ docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost arm32v5/rabbitmq:3-management
RabbitMQ包含显式跟踪和管理内存使用的功能,因此需要了解cgroup施加的限制(例如 https://docs.docker.com/config/containers/resource_constraints/#limit-a-containers-access-to-memory%EF%BC%89%E3%80%82
上游的相关配置设置是 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%E3%80%82%E8%A6%81%E8%AE%BE%E7%BD%AE%E4%B8%80%E8%87%B4%E7%9A%84Cookie%EF%BC%88%E5%AF%B9%E4%BA%8E%E9%9B%86%E7%BE%A4%E7%89%B9%E5%88%AB%E6%9C%89%E7%94%A8%EF%BC%8C%E4%B9%9F%E7%94%A8%E4%BA%8E%E9%80%9A%E8%BF%87 rabbitmqctl 进行远程/跨容器管理),请提供Cookie文件(默认位置为 /var/lib/rabbitmq/.erlang.cookie)。
例如,可以通过文件提供Cookie(如使用 https://docs.docker.com/engine/swarm/secrets/%EF%BC%89%EF%BC%9A
consoledocker service create ... --secret source=my-erlang-cookie,target=/var/lib/rabbitmq/.erlang.cookie ... arm32v5/rabbitmq
(注意,可能还需要指定 uid=XXX,gid=XXX,mode=0600,以便容器中的Erlang能够正确读取Cookie文件。有关更多详细信息,请参见 https://docs.docker.com/reference/cli/docker/service/create/#secret%E3%80%82%EF%BC%89
提供了第二组标签,默认安装并启用了 https://www.rabbitmq.com/management.html%EF%BC%8C%E5%8F%AF%E5%9C%A8%E6%A0%87%E5%87%86%E7%AE%A1%E7%90%86%E7%AB%AF%E5%8F%A3***%E4%B8%8A%E8%AE%BF%E9%97%AE%EF%BC%8C%E9%BB%98%E8%AE%A4%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%AF%86%E7%A0%81%E4%B8%BA guest/guest:
console$ docker run -d --hostname my-rabbit --name some-rabbit arm32v5/rabbitmq:3-management
你可以通过在浏览器中访问 http://container-ip:15672 来访问它,或者如果需要从主机外部访问,可以使用端口8080:
console$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 arm32v5/rabbitmq:3-management
然后,你可以在浏览器中访问 http://localhost:8080 或 http://host-ip:8080。
创建Dockerfile可在运行时启用插件。要查看镜像中存在的所有插件,可运行 rabbitmq-plugins list
DockerfileFROM 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%EF%BC%89%EF%BC%8C%E4%BE%8B%E5%A6%82%E9%80%9A%E8%BF%87%E7%BB%91%E5%AE%9A%E6%8C%82%E8%BD%BD%E3%80%81https://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 之间的空格在环境中转换时正确变为逗号。
有关此镜像未定义默认 HEALTHCHECK 的详细解释以及实现自己的健康/存活/就绪检查的建议,请参见 https://github.com/docker-library/faq#healthcheck 和 https://github.com/docker-library/rabbitmq/pull/174#issuecomment-452002696%E3%80%82
查看此镜像中包含的软件的 https://www.rabbitmq.com/mpl.html%E3%80%82
与所有Docker镜像一样,这些镜像可能还包含其他受其他许可约束的软件(例如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
可能能够自动检测到的一些其他许可信息可以在 https://github.com/docker-library/repo-info/tree/master/repos/rabbitmq 中找到。
至于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用都符合其中包含的所有软件的相关许可。
以下是 arm32v5/rabbitmq 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务