Ubuntu 22.04(WSL2)上使用Docker安装RabbitMQ

发布于:2025-05-10 ⋅ 阅读:(8) ⋅ 点赞:(0)

Ubuntu 22.04(WSL2)上使用Docker安装RabbitMQ

本教程将指导您在Ubuntu 22.04(运行于WSL2)上使用Docker安装和配置RabbitMQ,包括设置持久化存储、启用管理界面以及安装延迟消息交换和MQTT等插件。

前提条件

  • Ubuntu 22.04 已安装在 WSL2 上。
  • Docker 已安装并在 WSL2 上运行。
  • 熟悉基本的 Docker 命令和 Linux 文件权限。

步骤 1:创建挂载目录

为了确保 RabbitMQ 的数据、配置文件和日志在 Docker 容器外持久化,需要创建专用目录并设置适当的权限。

mkdir -p /home/rabbitmq/data /home/rabbitmq/conf /home/rabbitmq/log

说明:在 /home/rabbitmq 下创建三个目录(dataconflog),分别用于存储 RabbitMQ 的数据、配置和日志。-p 参数确保父目录不存在时会自动创建。

chmod 777 -R /home/rabbitmq/*

说明:递归地将 /home/rabbitmq 下的所有文件和目录权限设置为 777(所有用户均可读、写、执行)。这确保 RabbitMQ 可以访问这些目录,但 777 权限较为宽松,在生产环境中应根据需要调整以提高安全性。

步骤 2:运行 RabbitMQ Docker 容器

使用包含管理插件的 RabbitMQ 镜像启动容器,映射端口和挂载卷。

docker run -d --hostname rabbitmq --name rabbitmq --privileged=true -p 15672:15672 -p 5672:5672 -v /home/rabbitmq/data:/var/lib/rabbitmq -v /home/rabbitmq/conf:/etc/rabbitmq -v /home/rabbitmq/log:/var/log/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=your_password rabbitmq:3.13-management

说明

  • -d:在后台(分离模式)运行容器。
  • --hostname rabbitmq:设置容器主机名为 rabbitmq
  • --name rabbitmq:为容器命名 rabbitmq,便于后续操作。
  • --privileged=true:授予容器提升的权限(便于 RabbitMQ 的文件操作,但在生产环境中需谨慎使用)。
  • -p 15672:15672:将容器的 15672 端口(管理界面)映射到主机的 15672 端口。
  • -p 5672:5672:将容器的 5672 端口(AMQP 协议)映射到主机的 5672 端口。
  • -v /home/rabbitmq/data:/var/lib/rabbitmq:将主机的 /home/rabbitmq/data 挂载到容器的 /var/lib/rabbitmq,用于持久化数据。
  • -v /home/rabbitmq/conf:/etc/rabbitmq:将主机的 /home/rabbitmq/conf 挂载到容器的 /etc/rabbitmq,用于存储配置文件。
  • -v /home/rabbitmq/log:/var/log/rabbitmq:将主机的 /home/rabbitmq/log 挂载到容器的 /var/log/rabbitmq,用于存储日志。
  • -e RABBITMQ_DEFAULT_USER=admin:设置默认用户名为 admin
  • -e RABBITMQ_DEFAULT_PASS=your_password:设置默认用户密码为 your_password(请替换为安全密码)。
  • rabbitmq:3.13-management:使用包含管理插件的 RabbitMQ 3.13 版本镜像。

步骤 3:启用 RabbitMQ 管理界面

启用 RabbitMQ 的 Web 管理界面以便通过浏览器访问。

docker exec -it rabbitmq /bin/bash

说明:以交互模式(-it)进入名为 rabbitmq 的容器,启动一个 Bash 会话,允许在容器内执行命令。可以使用容器名称或容器 ID。

rabbitmq-plugins enable rabbitmq_management

说明:启用 rabbitmq_management 插件,激活 RabbitMQ 的 Web 管理界面。完成后,可通过浏览器访问 http://localhost:15672,使用用户名 admin 和密码 your_password 登录。

步骤 4:安装 RabbitMQ 插件

安装额外的插件,例如延迟消息交换插件和 MQTT 插件。

4.1 检查 RabbitMQ 版本

docker exec -it rabbitmq /bin/bash

说明:以交互模式进入名为 rabbitmq 的容器,启动一个 Bash 会话,允许在容器内执行命令。

rabbitmqctl version

说明:运行 rabbitmqctl version 命令,显示当前 RabbitMQ 的版本(例如 3.13.0),以确保下载的插件与版本兼容。

4.2 下载插件

访问 RabbitMQ 官方插件页面下载所需插件:

  • 插件下载页面:https://www.rabbitmq.com/community-plugins.html
  • 例如,下载 rabbitmq_delayed_message_exchange-3.13.0.ez 插件,确保版本与 RabbitMQ 匹配。

4.3 将插件复制到容器

先将插件复制到wsl2的Ubuntu系统中,eg: /home/rabbitmq/plugis/目录下

docker cp /home/rabbitmq/plugis/rabbitmq_delayed_message_exchange-3.13.0.ez rabbitmq:/plugins

说明:将主机上的插件文件(例如 /home/rabbitmq/plugis/rabbitmq_delayed_message_exchange-3.13.0.ez)复制到容器 rabbitmq/plugins 目录。需先通过 SSH 工具(如 SCP)将插件文件上传到 Linux 主机。

4.4 启用插件

docker exec -it rabbitmq /bin/bash

说明:以交互模式进入名为 rabbitmq 的容器,启动一个 Bash 会话,允许在容器内执行后续命令。

cd /plugins

说明:切换到容器的 /plugins 目录,插件文件已被复制到此目录。

ls

说明:列出 /plugins 目录中的文件,确认插件文件(如 rabbitmq_delayed_message_exchange-3.13.0.ez)已成功复制。

rabbitmq-plugins enable rabbitmq_delayed_message_exchange rabbitmq_mqtt rabbitmq_web_mqtt

说明:启用指定的插件(rabbitmq_delayed_message_exchangerabbitmq_mqttrabbitmq_web_mqtt)。只需提供插件前缀,无需包含版本号或 .ez 后缀,否则会报错。插件功能如下:

  • rabbitmq_delayed_message_exchange:支持延迟消息。
  • rabbitmq_mqtt:支持 MQTT 协议。
  • rabbitmq_web_mqtt:支持 Web MQTT。
exit

说明:退出容器的 Bash 会话,返回到主机终端。

步骤 5:重启容器

docker restart rabbitmq

说明:重启名为 rabbitmq 的容器,使新启用的插件配置生效。

验证安装

  1. 打开浏览器,访问 http://localhost:15672
  2. 使用用户名 admin 和密码 your_password 登录。
  3. 验证管理界面是否正常显示,并检查是否可以创建队列、交换机等。
  4. 如果启用了延迟消息或 MQTT 插件,可通过相应的客户端测试功能。

注意事项

  • 生产环境中,建议使用更安全的密码,并调整目录权限(避免 777)。
  • 确保插件版本与 RabbitMQ 版本兼容,避免运行时错误。
  • 如果 WSL2 端口映射有问题,可检查 Docker 和 WSL2 的网络配置。

通过以上步骤,您已在 Ubuntu 22.04(WSL2)上成功使用 Docker 安装并配置了 RabbitMQ,启用了管理界面和常用插件。


网站公告

今日签到

点亮在社区的每一天
去签到