ppc64le/rabbitmq** 注意 **:这是rabbitmq官方镜像的ppc64le架构专用仓库——更多信息,请参见官方镜像文档中的“除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
-** 问题反馈地址 :
[*]
-** 支持的架构 **:(更多信息)
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,以避免随机主机名并能跟踪数据:
console$ docker run -d --hostname my-rabbit --name some-rabbit ppc64le/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版本的镜像会打印出根据提供的环境变量生成的配置文件。
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 ppc64le/rabbitmq:3-management
然后,您可以在浏览器中访问http://localhost:8080或[***],使用user/password登录管理控制台。
如果希望更改默认虚拟主机,可以使用RABBITMQ_DEFAULT_VHOST环境变量:
console$ docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost ppc64le/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):
consoledocker service create ... --secret source=my-erlang-cookie,target=/var/lib/rabbitmq/.erlang.cookie ... ppc64le/rabbitmq
(注意,可能还需要指定uid=XXX,gid=XXX,mode=0600,以便容器中的Erlang能够正确读取Cookie文件。有关更多详细信息,请参见Docker的--secret文档。)
提供了第二组标签,默认安装并启用了管理插件,可通过标准管理端口***访问,默认用户名和密码为guest/guest:
console$ docker run -d --hostname my-rabbit --name some-rabbit ppc64le/rabbitmq:3-management
您可以通过浏览器访问[***],如果需要从主机外部访问,可以映射到8080端口:
console$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:*** ppc64le/rabbitmq:3-management
然后,您可以在浏览器中访问http://localhost: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文档的“配置文件”部分),例如通过绑定挂载、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之间的空格在环境中转换时正确变为逗号。
参见“官方镜像”FAQ和[docker-library/rabbitmq#174的讨论(特别是Rab


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