本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
注意:这是RabbitMQ官方镜像的arm64v8架构构建的"per-architecture"仓库——更多信息请参见官方镜像文档中的"非amd64架构"和官方镜像FAQ中的"镜像源在Git中已更改,该怎么办?"。
-** 维护者 **:
Docker社区
-** 获取帮助 **:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接4.2.0-rc.1, 4.2-rc
4.2.0-rc.1-management, 4.2-rc-management
4.2.0-rc.1-alpine, 4.2-rc-alpine
4.2.0-rc.1-management-alpine, 4.2-rc-management-alpine
4.1.4, 4.1, 4, latest
4.1.4-management, 4.1-management, 4-management, management
4.1.4-alpine, 4.1-alpine, 4-alpine, alpine
4.1.4-management-alpine, 4.1-management-alpine, 4-management-alpine, management-alpine
4.0.9, 4.0
4.0.9-management, 4.0-management
4.0.9-alpine, 4.0-alpine
4.0.9-management-alpine, 4.0-management-alpine
3.13.7, 3.13, 3
3.13.7-management, 3.13-management, 3-management
3.13.7-alpine, 3.13-alpine, 3-alpine
3.13.7-management-alpine, 3.13-management-alpine, 3-management-alpine
-** 提交issue的位置 :
[*]
-** 支持的架构 **:(更多信息)
amd64、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x
-** 已发布镜像工件详情 **:
repo-info仓库的repos/rabbitmq/目录 (历史记录)
(镜像元数据、传输大小等)
-** 镜像更新 **:
official-images仓库的library/rabbitmq标签
official-images仓库的library/rabbitmq文件 (历史记录)
-** 本描述的来源 **:
docs仓库的rabbitmq/目录 (历史记录)
RabbitMQ是一款开源的消息代理软件(有时称为面向消息的中间件),实现了高级消息队列协议(AMQP)。RabbitMQ服务器使用Erlang编程语言编写,基于Open Telecom Platform框架构建,支持集群和故障转移。适用于所有主要编程语言的客户端库可用于与代理交互。
***.org/wiki/RabbitMQ
!logo
关于RabbitMQ需要注意的重要事项之一是,它基于所谓的"节点名称"(默认为主机名)存储数据。这对于Docker中的使用意味着,我们应该为每个守护进程显式指定-h/--hostname,以避免随机主机名并能跟踪数据:
$ docker run -d --hostname my-rabbit --name some-rabbit arm64v8/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本身支持的环境变量列表,请参见rabbitmq.com/configure的环境变量部分
警告:从RabbitMQ 3.9开始,以下列出的所有docker特定变量均已弃用且不再使用。请改用配置文件;访问rabbitmq.com/configure了解有关配置文件的更多信息。作为起点,3.8版本的镜像会打印出根据提供的环境变量生成的配置文件。
# 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中支持。
$ docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password arm64v8/rabbitmq:3-management
然后可以在浏览器中访问http://localhost:8080或[***],使用user/password登录管理控制台。
如果希望更改默认虚拟主机,可以使用RABBITMQ_DEFAULT_VHOST环境变量:
$ docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost arm64v8/rabbitmq:3-management
RabbitMQ包含显式跟踪和管理内存使用的功能,因此需要了解cgroup施加的限制(例如docker run --memory=..)。
上游配置设置为rabbitmq.conf中的vm_memory_high_watermark,在文档的"内存告警"部分有描述。如果通过vm_memory_high_watermark.relative设置相对限制,RabbitMQ将基于主机的总内存而非容器运行时设置的限制计算其限制。
有关Cookie及其必要性的更多信息,请参见RabbitMQ"集群指南"。要设置一致的Cookie(尤其对集群有用,也用于通过rabbitmqctl进行远程/跨容器管理),请提供Cookie文件(默认位置为/var/lib/rabbitmq/.erlang.cookie)。
例如,可以通过文件提供Cookie(如使用Docker Secrets):
docker service create ... --secret source=my-erlang-cookie,target=/var/lib/rabbitmq/.erlang.cookie ... arm64v8/rabbitmq
(注意,可能还需要指定uid=XXX,gid=XXX,mode=0600,以便容器中的Erlang能够正确读取Cookie文件。有关更多详细信息,请参见Docker的--secret文档。)
提供了第二组标签,默认安装并启用了管理插件,可在标准管理端口15672上访问,默认用户名和密码为guest/guest:
$ docker run -d --hostname my-rabbit --name some-rabbit arm64v8/rabbitmq:3-management
可以通过在浏览器中访问[***]来访问它;如果需要从主机外部访问,可以映射到8080端口:
$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 arm64v8/rabbitmq:3-management
然后可以在浏览器中访问http://localhost:8080或[***]。
创建Dockerfile可在运行时启用插件。要查看镜像中存在的所有插件,可运行rabbitmq-plugins list
FROM rabbitmq:3.8-management RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp
也可以挂载文件到/etc/rabbitmq/enabled_plugins,内容为以句点结尾的Erlang原子列表。
示例enabled_plugins:
[rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].
如果需要配置,建议提供适当的/etc/rabbitmq/rabbitmq.conf文件(有关更多详细信息,请参见RabbitMQ文档的"配置文件"部分),例如通过绑定挂载、Docker Configs或带有COPY指令的简短Dockerfile。
或者,可以使用RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS环境变量,其语法在Erlang OTP设计原则用户指南的第7.8节("配置应用程序")中有描述(-ApplName的适当值为-rabbit),此方法需要略微不同地重现其在rabbitmq.conf中的等效条目。例如,配置channel_max类似于-e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbit channel_max 4007"。其中变量channel_max与其值4007之间的空格在环境中转换时正确变为逗号。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429