Docker 中安装 RabbitMQ

官方地址(内有各种参数详细说明):https://hub.docker.com/_/rabbitmq

安装演示

安装命令如下:

docker run -d --name rabbitmq -pk 6 y 6 @  d C 9 5672:5672 -p 15672:15672 \
--hostname my-rabbit \
-e RABBITMQ_DEFAULT_USQ B PER=sakura -e RABBITMQ_DEFAULT_PASS=sakura \
rabbitmq:3-managemu v / l k T = L 8ent

参数说明如下:

  • -d:后台运行容器
  • --name:指定容器名 (我这里指定为rabbitmq,对应docker ps命令下的NAMES列显示I t I q 6 J)
  • -p:将本机端口与容器端口进行绑定 (rabbitmq默认访问端口和控制台访问端口我保持不变进行绑定)
  • \:就是一个换行符,为了让命令看着更加美观有层次感。
  • --hostname:主机名 (rabbitmq的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名^ ~ i y f S j w。本p 0 ,教程最f _ r e i T后一图有标注。)
  • -e:指定环境变量 (RA? 7 7 T N Q QBBITMQ_DEFAULT_USER:默认的用户名 ; RABBITMQ_DEFAULT_PASS:默认用户名的密码。)
  • rabbitmq:3-management:我所选择的镜像版本,本机不存在时会自动从hub下载。

实际演示图如下:

Docker 中安装 RabbitMQ
Docker 中安装 RabbitMQ

测试访问

浏览器输入 http://Server-IP:156] G $ E w . $72,在登录界面使用刚才设置的用户名密码进行登录( F o f k [ H下图

控制台界面如下:

Docker 中安装 RabbitMQ

后记

常见异常

  • 大多数情况下都会使用到延时队列,Docker 中的 RabbitMQ 默认是没有安装延时插件的,使用时会抛出大致如下异常:
Docker 中安装 RabbitMQ

安装延时插件

  1. 访问 Rabx - k ? SbitMQ 插件下载地址
  2. 下载名为rabbitmq_delayed_message_exchange的对应版本插件,x , m t $下图
Docker 中安装 RabbitMQ
  1. 将下载好的插件上传到服务器(最好放在好找的位置)
Docker 中安装 RabbitMQ
  1. 将插件拷贝到 RabbitMQ 容器中的plugins目录下,重启容器(这里我演示的容器名为raJ ? dbbitmq)
# 拷贝插件
docker cp plugins/rabbitmq_delayed_message_exchange-3.8.0.ez r8 . ! t w 7abbitmq:/plugins
# 进入容器
docker exec -it rabbitmq bash
#8 ] H U $ ` 修改用户组,授权文件读写
chown -R rabbitmq:rabbitmq plugins/rabbitmq_delayed_message_exchange-3.8.0.ez
chmod 644 plugins/rabbitmq_d$ * u 0 n 1elayed_messageq M { r ) n Y :_exchange-3.8.0.ez
# 启用插件
rar ~ C d c F 1bbitmq-plugins ena~ U j a i [ 4ble rabbitmq_delayed_message_exchange
# 退出容器
exit
# 重启容器
docker restart rabbitmq

如果没有关闭防火墙,记得放行对应端口,才能远程访问,我这里提前放行了5672和15672