
Docker 安装RabbitMQ
拉取 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_USER
和 RABBITMQ_DEFAULT_PASS
,如上文所示。