拉取 RabbitMQ 镜像

首先拉取带有管理插件的 RabbitMQ 镜像:

docker pull rabbitmq:management

这个镜像自带了 RabbitMQ 和 Web 管理插件,便于后续管理。

启动 RabbitMQ 容器

拉取完成后,使用以下命令启动 RabbitMQ 容器,并设置自定义的用户名和密码:

docker run -d --name rabbitmq \
  -p 5672:5672 \
  -p 15672:15672 \
  -e RABBITMQ_DEFAULT_USER=myuser \
  -e RABBITMQ_DEFAULT_PASS=mypassword \
  rabbitmq:management

参数解释:

  • -d:让容器在后台运行。

  • --name rabbitmq:给容器起个名字。

  • -p 5672:5672:映射 RabbitMQ 的 AMQP 端口。

  • -p 15672:15672:映射 RabbitMQ 管理插件的 Web 端口。

  • -e RABBITMQ_DEFAULT_USER=myuser:设置默认用户名为 myuser

  • -e RABBITMQ_DEFAULT_PASS=mypassword:设置默认密码为 mypassword

访问管理界面

RabbitMQ 启动后,打开浏览器访问管理界面:

http://<服务器IP>:15672

使用以下账号登录:

  • 用户名myuser(你设置的用户名)

  • 密码mypassword(你设置的密码)

查看容器状态

docker ps

停止和删除 RabbitMQ 容器

如果你需要停止 RabbitMQ 容器,可以执行:

docker stop rabbitmq

如果要删除容器:

docker rm rabbitmq

数据持久化(可选)

为了防止容器重启或删除后丢失数据,可以将 RabbitMQ 数据目录挂载到本地磁盘。如下:

docker run -d --name rabbitmq \
  -p 5672:5672 \
  -p 15672:15672 \
  -v /my/local/path/rabbitmq/data:/var/lib/rabbitmq \
  -e RABBITMQ_DEFAULT_USER=myuser \
  -e RABBITMQ_DEFAULT_PASS=mypassword \
  rabbitmq:management

这样,RabbitMQ 的数据会保存在本地路径 /my/local/path/rabbitmq/data 中。

延迟消息

在 RabbitMQ 中实现延迟消息(Delayed Message)可以通过几种方式,常见的方案是使用 插件TTL(Time-To-Live) 配置,插件方式要灵活一点,因此我这里只讲插件的方式

下载RabbitMQ Delayed Message Plugin 插件

你可以使用 wget 或直接访问下载链接来下载插件

wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v4.0.2/rabbitmq_delayed_message_exchange-4.0.2.ez

拷贝插件到容器中

假设你下载的插件文件名是 rabbitmq_delayed_message_exchange-4.0.2.ez ,现在将该插件拷贝到 RabbitMQ 容器中。

docker cp rabbitmq_delayed_message_exchange-4.0.2.ez rabbitmq:/plugins/

这里的 rabbitmq 是容器的名称,/plugins/ 是 RabbitMQ 插件目录。

进入容器并启用插件

进入 RabbitMQ 容器:

docker exec -it rabbitmq /bin/bash

在容器内启用插件:

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

这会启用延迟消息插件

重启 RabbitMQ

启用插件后,最好重启 RabbitMQ 容器,以确保插件生效:

docker restart rabbitmq

这样,RabbitMQ 会重启并加载新安装的插件。

验证插件是否启用

docker exec rabbitmq rabbitmq-plugins list

如果插件启用了,应该能看到 rabbitmq_delayed_message_exchange 列在启用插件列表中。

常见问题

Q1: 如何查看 RabbitMQ 状态? 你可以通过访问 http://<服务器IP>:15672 来查看 RabbitMQ 的运行状态,或者使用 docker ps 查看容器状态。

Q2: 如何修改默认的用户名和密码? 在启动容器时,通过环境变量设置 RABBITMQ_DEFAULT_USERRABBITMQ_DEFAULT_PASS,如上文所示。