docker部署rabbitmq需四步:选rabbitmq:management镜像、映射5672/15672端口、挂载数据卷持久化、配置非guest用户及防火墙/安全组放行;缺一将导致访问失败、数据丢失或无法收发消息。

用 Docker 部署 RabbitMQ 很直接,关键在镜像选择、端口映射、数据持久化和基础安全配置这四步。跳过任意一环,后续访问失败、数据丢失或无法生产消费都很常见。
拉取带管理界面的官方镜像
必须使用 rabbitmq:management 标签的镜像,它内置了 rabbitmq_management 插件,否则启动后打不开 Web 控制台。
- 执行
docker pull rabbitmq:3.13-management(推荐指定小版本号,避免自动升级引发兼容问题) - 不建议只拉
rabbitmq(无管理插件)再进容器手动启用——多一步就多一个失败点 - 国内环境可提前配置 Docker 镜像加速源,防止拉取超时
运行容器并映射必要端口
两个端口缺一不可:5672 是 AMQP 协议通信端口(应用连接用),15672 是 Web 管理界面端口(人工操作用)。
- 基础命令示例:
docker run -d \--name rabbitmq \--hostname my-rabbit \-p 5672:5672 \-p 15672:15672 \-e RABBITMQ_DEFAULT_USER=admin \-e RABBITMQ_DEFAULT_PASS=Admin@123 \-v /opt/rabbitmq/data:/var/lib/rabbitmq \rabbitmq:3.13-management - 务必加
-v挂载宿主机目录,否则容器重启后所有队列、用户、权限全丢 - 不要用默认
guest/guest用户——从 RabbitMQ 3.3 起,该账号仅限 localhost 访问,远程登录直接拒绝
检查运行状态与防火墙放行
容器跑起来不等于服务可用,得确认进程就绪且网络通畅。
- 执行
docker logs -f rabbitmq,看到类似... completed with 0 plugins.和Management plugin started才算真正就绪 - CentOS/Alibaba Cloud 等系统需手动放行端口:
用firewall-cmd --permanent --add-port=5672/tcp和firewall-cmd --permanent --add-port=15672/tcp,再firewall-cmd --reload - 云服务器(如腾讯云、阿里云)必须在安全组中开放这两个端口,否则外网根本连不上
登录管理界面并验证功能
浏览器打开 http://:15672,输入你设置的用户名密码即可进入。
- 首次登录后,建议立即创建新用户并分配
administrator角色,禁用默认 admin 账号(可选但推荐) - 点击 “Queues” → “Add a new queue”,建一个测试队列;再点 “Publish message”,发条消息验证收发通路
- 代码连接时,AMQP 地址写成
amqp://admin:Admin@123@:5672/,注意协议头和端口别错











