背景:从官方拉取RabbitMQ镜像,并启动容器,容器正常启动,且日志中无报错情况,但管理端口无法通
故障排查
docker exec -it ${容器ID} /bin/bash
root@myRabbitmq:/# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@myRabbitmq
|/
[ ] rabbitmq_amqp1_0 3.12.10
[ ] rabbitmq_auth_backend_cache 3.12.10
[ ] rabbitmq_auth_backend_http 3.12.10
[ ] rabbitmq_auth_backend_ldap 3.12.10
[ ] rabbitmq_auth_backend_oauth2 3.12.10
[ ] rabbitmq_auth_mechanism_ssl 3.12.10
[ ] rabbitmq_consistent_hash_exchange 3.12.10
[ ] rabbitmq_event_exchange 3.12.10
[ ] rabbitmq_federation 3.12.10
[ ] rabbitmq_federation_management 3.12.10
[ ] rabbitmq_jms_topic_exchange 3.12.10
[ ] rabbitmq_management 3.12.10
[e*] rabbitmq_management_agent 3.12.10
列表显示 "[ ] rabbitmq_management 3.12.10" rabbitmq_management插件并未启用
在 RabbitMQ 插件列表中,[ ] rabbitmq_management 3.12.1 表示 rabbitmq_management 插件已安装但尚未启用。
rabbitmq_management 是 RabbitMQ 的管理插件,它提供了一个可视化的管理界面,用于监控和管理 RabbitMQ 服务器。
[ ] 表示该插件当前处于禁用状态。方括号中没有标记 * 或 E,表明该插件未启用。
解决办法
#容器内执行
rabbitmq-plugins enable rabbitmq_management
执行完后,管理页面就可以成功访问了。
不想每次都执行?那就自己加工一下即可
vim Dockerfile
FROM rabbitmq:latest
# 启用 RabbitMQ 管理插件
RUN rabbitmq-plugins enable rabbitmq_management
然后,在构建 Docker 镜像时使用该 Dockerfile:
docker build -t my-rabbitmq-image .