Docker Compose 部署 RabbitMQ 用于开发调试

Docker Compose 部署 RabbitMQ 用于开发调试

本文将介绍如何通过 Docker Compose 快速部署 RabbitMQ 消息队列服务,适用于本地开发和调试场景。RabbitMQ 是一个开源的消息代理,支持多种消息协议,在分布式系统中用于解耦、扩展和处理异步任务。

环境要求

  • Docker 19.03 或更高版本
  • Docker Compose 1.27.0 或更高版本

Docker Compose 配置详解

以下是 docker-compose.yml 文件配置,用于启动一个带管理插件的 RabbitMQ 容器,设置端口、环境变量、数据挂载及网络。

docker-compose.yml

services:
  rabbitmq:
    image: "rabbitmq:3.13.6-management"
    restart: always
    privileged: true
    ports:
      - "35672:5672"     # RabbitMQ standard port
      - "45672:15672"    # RabbitMQ management plugin port
    container_name: rabbitmq
    hostname: rabbitmq
    environment:
      - RABBITMQ_ERLANG_COOKIE=secret_cookie    # Set a custom Erlang cookie for clustering
      - RABBITMQ_DEFAULT_USER=admin             # Set RabbitMQ admin user
      - RABBITMQ_DEFAULT_PASS=_admin123         # Set RabbitMQ admin password
    networks:
      - custom
    volumes:
      - ./storage:/var/lib/rabbitmq

networks:
  custom:
    external: true
    driver: bridge

配置说明

  • 镜像与容器

    • 使用了带有管理插件的 rabbitmq:3.13.6-management 官方镜像,支持通过 Web UI 管理 RabbitMQ。
    • container_name 设置为 rabbitmq,便于管理。
    • hostname 设置为 rabbitmq,用于容器内的主机名解析。
  • 端口映射

    • 35672:5672 将主机的 35672 端口映射到容器的 5672 端口,5672 是 RabbitMQ 的标准 AMQP 端口,应用程序可以通过此端口与 RabbitMQ 进行通信。
    • 45672:15672 将主机的 45672 端口映射到容器的 15672 端口,15672 是 RabbitMQ 管理插件的 Web UI 端口,用户可以通过浏览器访问管理界面。
  • 环境变量

    • RABBITMQ_ERLANG_COOKIE 设置自定义的 Erlang Cookie,用于集群环境下的节点通信。
    • RABBITMQ_DEFAULT_USERRABBITMQ_DEFAULT_PASS 设置 RabbitMQ 的默认管理员用户名和密码。在本文中,用户名为 admin,密码为 _admin123
  • 网络配置

    • 使用名为 custom 的外部网络,确保容器与其他服务可以互通。
  • 挂载卷

    • ./storage:/var/lib/rabbitmq 挂载本地 ./storage 目录到容器内部的 /var/lib/rabbitmq,用于存储 RabbitMQ 的持久化数据和日志,确保即使容器重启,数据不会丢失。

启动 RabbitMQ

确保已经安装了 Docker 和 Docker Compose,并在项目根目录下创建了 docker-compose.yml 文件。

  1. 使用以下命令启动 RabbitMQ 服务:

    docker-compose up -d
    
  2. 启动完成后,可以通过以下命令查看容器状态:

    docker-compose ps
    

    输出示例:

    Name                Command               State          Ports
    -----------------------------------------------------------------------------------
    rabbitmq   docker-entrypoint.sh rabbi ...  Up       0.0.0.0:35672->5672/tcp, 0.0.0.0:45672->15672/tcp
    
  3. 访问 RabbitMQ 管理界面:

    打开浏览器,访问 http://localhost:45672,输入 admin 作为用户名,_admin123 作为密码,登录 RabbitMQ 的 Web 管理界面。

  4. 使用 docker exec 进入容器内部:

    docker exec -it rabbitmq /bin/bash
    

    你可以通过此命令进入容器内的 Shell 进行进一步操作或调试。

常见问题

  • 端口冲突:确保宿主机的端口 3567245672 未被其他服务占用,否则需要在 docker-compose.yml 中修改这些端口。
  • 数据持久化:请确保挂载的本地存储目录 ./storage 存在且具有适当的读写权限,否则 RabbitMQ 数据可能无法持久化。

总结

通过 Docker Compose,我们可以轻松部署并运行一个带有管理插件的 RabbitMQ 实例,非常适合用于开发和调试。本文中的配置允许我们快速启动 RabbitMQ,并通过 Web UI 方便地管理消息队列、查看队列状态、监控系统性能等。在生产环境中,你可以扩展该配置,加入更多节点,构建高可用的 RabbitMQ 集群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值