RabbitMQ是一款开源的多协议消息代理,主要用于在分布式系统中实现应用间的异步通信,支持AMQP、MQTT、STOMP等多种消息协议,能够有效解耦服务、提升系统可靠性与可扩展性,适用于微服务架构、实时数据处理及异步任务处理等场景,由Erlang语言开发,具备高并发、高可用特性,广泛应用于企业级系统。
收藏数: 5.3千
下载次数: 3756504449
类型:

library/rabbitmq由 Docker社区 负责维护。
可通过以下途径获取帮助:
以下是当前支持的镜像标签及其对应的Dockerfile源码链接:
4.2.0-rc.1、4.2-rc → Dockerfile4.2.0-rc.1-management、4.2-rc-management → Dockerfile4.2.0-rc.1-alpine、4.2-rc-alpine → Dockerfile4.2.0-rc.1-management-alpine、4.2-rc-management-alpine → Dockerfile4.1.4、4.1、4、latest → Dockerfile4.1.4-management、4.1-management、4-management、management → Dockerfile4.1.4-alpine、4.1-alpine、4-alpine、alpine → Dockerfile4.1.4-management-alpine、4.1-management-alpine、4-management-alpine、management-alpine → Dockerfile4.0.9、4.0 → Dockerfile4.0.9-management、4.0-management → Dockerfile4.0.9-alpine、4.0-alpine → Dockerfile4.0.9-management-alpine、4.0-management-alpine → Dockerfile3.13.7、3.13、3 → Dockerfile3.13.7-management、3.13-management、3-management → Dockerfile3.13.7-alpine、3.13-alpine、3-alpine → Dockerfile3.13.7-management-alpine、3.13-management-alpine、3-management-alpine → DockerfileGitHub Issues
(更多信息见官方说明)
amd64、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x
(各架构镜像链接可通过原文获取)
包含元数据、传输大小等信息,见 repo-info仓库的rabbitmq目录(含历史记录)
docs仓库的rabbitmq目录(含历史记录)
RabbitMQ是一款开源消息代理软件(也称消息中间件),实现了高级消息队列协议(AMQP)。其服务端基于Erlang语言开发,并依托Open Telecom Platform框架实现集群和故障转移。目前,几乎所有主流编程语言都有与之对接的客户端库。
更多信息:***RabbitMQ词条
!RabbitMQ Logo
RabbitMQ的数据存储依赖“节点名称”(默认与主机名一致),因此在Docker中使用时,建议显式指定-h/--hostname以固定节点名称,避免随机主机名导致数据追踪困难:
bashdocker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
上述命令将启动一个监听默认端口5672的RabbitMQ容器。运行后可通过docker logs some-rabbit查看日志,其中包含节点名称、数据目录等关键信息(如database dir: /var/lib/rabbitmq/mnesia/rabbit@my-rabbit)。该镜像默认将/var/lib/rabbitmq设为数据卷。
RabbitMQ本身支持的环境变量列表见官方文档“环境变量”章节。
注意:自RabbitMQ 3.9起,以下Docker特定环境变量已弃用,需通过配置文件替代(详见官方配置指南):
bashRABBITMQ_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环境变量指定(RabbitMQ原生支持,非Docker特有):
bashdocker run -d --hostname my-rabbit --name some-rabbit \ -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password \ rabbitmq:3-management
启动后,访问`[***]
通过RABBITMQ_DEFAULT_VHOST环境变量指定默认虚拟主机:
bashdocker run -d --hostname my-rabbit --name some-rabbit \ -e RABBITMQ_DEFAULT_VHOST=my_vhost \ rabbitmq:3-management
RabbitMQ需感知cgroup施加的内存限制(如docker run --memory=..),相关配置通过rabbitmq.conf中的vm_memory_high_watermark参数设置(详见官方“内存告警”文档)。若使用相对比例(如vm_memory_high_watermark.relative),RabbitMQ将基于主机总内存计算限制,而非容器运行时限制。
集群部署或跨容器管理(如rabbitmqctl)需统一Erlang Cookie。可通过文件挂载(如Docker Secrets)提供Cookie文件(默认路径/var/lib/rabbitmq/.erlang.cookie):
bashdocker service create ... --secret source=my-erlang-cookie,target=/var/lib/rabbitmq/.erlang.cookie ... rabbitmq
需确保Cookie文件权限为0600,且所属用户/组与容器内一致(详见Docker --secret文档)。
带-management后缀的标签预装了管理插件,默认监听***端口,用户可通过浏览器访问管理界面:
bash# 直接暴露管理端口到主机8080 docker run -d --hostname my-rabbit --name some-rabbit -p 8080:*** rabbitmq:3-management
可通过Dockerfile预装插件(需基于带管理插件的镜像):
DockerfileFROM rabbitmq:3.8-management RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp
也可挂载/etc/rabbitmq/enabled_plugins文件指定启用的插件(格式为Erlang原子列表,以句点结尾),例如:
erlang[rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].
建议通过/etc/rabbitmq/rabbitmq.conf文件进行配置(详见官方“配置文件”章节),可通过挂载、Docker Configs或Dockerfile的COPY指令添加。
也可通过RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS环境变量传递配置(语法见Erlang OTP文档,需指定-rabbit作为应用名)。例如,配置channel_max参数:
bash-e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbit channel_max 4007"
此镜像未预设HEALTHCHECK,原因及自定义检查建议见官方镜像FAQ及相关讨论。
rabbitmq:<version>默认镜像,适用于大多数场景。既可作为临时容器(挂载源码启动),也可作为基础镜像构建其他镜像。
rabbitmq:<version>-alpine基于Alpine Linux(轻量级发行版,基础镜像仅~5MB),镜像体积更小。适用于对最终镜像大小有严格要求的场景。
注意:Alpine使用musl libc而非glibc,部分依赖glibc的软件可能运行异常。如需额外工具(如git、bash),需在Dockerfile中自行安装(参考Alpine镜像文档)。
镜像中软件的许可证信息见RabbitMQ官方文档。
与所有Docker镜像一样,本镜像可能包含其他软件(如基础系统的Bash等),其许可证需另行确认。自动检测到的许可证信息可在repo-info仓库的rabbitmq目录查看。
使用前请确保遵守所有包含软件的许可证要求。
以下是 rabbitmq 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。


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