欢迎光临
我们一直在努力

Docker Compose 一键部署 RabbitMQ 消息队列服务

一、方案概述

本文提供完整 docker-compose-rabbitmq.yml 编排脚本,基于 RabbitMQ 3.12.9 官方镜像快速搭建消息中间件,内置管理插件持久化配置、自定义登录账号、端口映射、自动重启与专属网桥网络,适配 Windows Docker Desktop 开发环境,一条命令即可完成服务部署,自带 Web 可视化管理后台,方便开发调试消息队列。

核心能力:

  • AMQP 通信端口 5672 供业务程序收发消息;
  • 15672 端口提供 Web 管理面板,可视化管理交换机、队列、绑定关系;
  • 持久化插件配置,容器重启后管理插件自动启用;
  • 自定义管理员账号密码,容器异常自动重启保障服务稳定。
  • 二、完整 Compose 配置文件

    文件名称:docker-compose-rabbitmq.yml

    # 后台启动命令:docker compose -f docker-compose-rabbitmq.yml up -d
    version: '3.9'
    services:
    rabbitmq:
    image: rabbitmq:3.12.9
    container_name: rabbitmq
    restart: always
    ports:
    – "5672:5672"
    – "15672:15672"
    environment:
    RABBITMQ_DEFAULT_USER: admin
    RABBITMQ_DEFAULT_PASS: admin
    command: rabbitmq-server
    volumes:
    – C:/docker/rabbitmq/plugins/enabled_plugins:/etc/rabbitmq/enabled_plugins
    networks:
    my-network:
    driver: bridge

    三、配置项详细解析

    1. Compose 版本声明

    version: '3.9' 适配主流 Docker Desktop 版本,兼容端口映射、数据挂载、自定义网络等全部常用语法。

    2. RabbitMQ 核心服务配置

    配置参数功能说明
    image: rabbitmq:3.12.9 锁定稳定版 RabbitMQ 镜像,规避新版本兼容性问题
    container_name: rabbitmq 固定容器名称,简化 docker exec、docker logs 等运维命令
    restart: always 容器崩溃、宿主机重启后自动重启,保证服务常驻
    ports 端口映射 5672:RabbitMQ AMQP 标准通信端口,项目代码连接使用15672:Web 管理后台访问端口
    environment 环境变量 RABBITMQ_DEFAULT_USER:默认管理员账号 adminRABBITMQ_DEFAULT_PASS:默认管理员密码 admin
    command: rabbitmq-server 启动 RabbitMQ 主服务程序
    volumes 挂载 Windows 本地路径 C:/docker/rabbitmq/plugins/enabled_plugins 挂载至容器插件配置目录,持久化开启 rabbitmq_management 管理插件,容器重建无需重复执行插件启用命令

    3. 自定义网桥网络 my-network

    创建独立 bridge 网络,若后续搭配 Redis、MySQL 等容器,可加入同一网络实现容器间内网互通,隔离宿主机其他服务,网络架构更整洁。

    四、部署前置准备(Windows 环境)

  • 本地创建目录结构:C:/docker/rabbitmq/plugins/
  • 在 plugins 文件夹新建 enabled_plugins 文件,写入以下内容开启管理面板插件:
  • [rabbitmq_management].

  • 确认本地 Docker Desktop 已正常启动。
  • 五、常用运维操作命令

    1. 后台静默启动 RabbitMQ

    docker compose -f docker-compose-rabbitmq.yml up -d

    2. 实时查看服务运行日志

    docker logs -f rabbitmq

    3. 停止服务(保留配置与数据)

    docker compose -f docker-compose-rabbitmq.yml down

    4. 彻底清理容器与镜像

    docker compose -f docker-compose-rabbitmq.yml down –rmi all

    5. 进入 RabbitMQ 容器执行原生命令

    docker exec -it rabbitmq bash
    # 示例:查看已启用插件
    rabbitmq-plugins list

    六、服务访问方式

    1. 程序代码连接(AMQP)

    连接地址:127.0.0.1:5672 账号:admin,密码:admin 适用于 Java、Python、Go、PHP 等各类业务生产者 / 消费者代码。

    2. Web 可视化管理后台

    浏览器访问地址:http://localhost:15672 登录账号:admin /admin 后台支持功能:

    • 创建 / 删除交换机、队列、绑定关系;
    • 查看消息堆积、消费速率、连接通道;
    • 消息手动发布、批量删除、死信队列管理;
    • 用户、虚拟主机、权限管控。

    七、生产环境优化建议

  • 修改默认账号密码:替换 RABBITMQ_DEFAULT_USER、RABBITMQ_DEFAULT_PASS,杜绝弱口令;
  • 持久化消息数据:新增 volume 挂载数据目录,防止容器删除丢失队列消息;
  • 资源限制:添加 mem_limit、cpus 限制容器资源占用,避免抢占宿主机性能;
  • Linux 服务器适配:将挂载路径 C:/docker/rabbitmq/ 替换为 Linux 目录,如 /data/rabbitmq/plugins/enabled_plugins;
  • 网络安全管控:防火墙限制 5672、15672 端口访问,仅内网业务服务器可连接;
  • 集群部署:生产环境可基于该模板扩展 RabbitMQ 集群,提升消息可靠性与吞吐量。
  • 八、总结

    该 Docker Compose 模板实现 RabbitMQ 开箱即用式部署,无需本地手动安装 Erlang 与 RabbitMQ 依赖,通过挂载文件持久化管理插件,省去重复启用插件操作。配套 Web 可视化面板大幅降低消息队列调试成本,非常适合开发、测试环境快速搭建消息中间件,修改少量配置后也可用于内网测试服务器。




    赞(0)
    未经允许不得转载:171主机测评 » Docker Compose 一键部署 RabbitMQ 消息队列服务
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址