一、拉取镜像
docker pull rabbitmq:3.12.0-management
二、启动
docker run -d \
--name=rabbitmq \
--restart=always \
-p 5672:5672 \
-p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-v /home/rabbitmq:/var/lib/rabbitmq \
rabbitmq:3.12.0-management
- -d:以守护进程模式在后台运行容器。
- --name rabbitmq:为容器指定名称为 rabbitmq,方便后续管理。
- --restart=always:它表示无论容器因为何种原因退出(包括正常退出和异常退出),Docker 守护进程都会自动重启该容器。比如当服务器重启、容器内部服务崩溃导致容器退出等情况发生时,容器都能自动重新启动,以提高容器内服务的可用性。
- -p [宿主机端口]:[容器端口]
- -p 5672:5672:将容器内用于 AMQP 协议通信的 5672 端口,映射到主机的 5672 端口。
- -p 15672:15672:将容器内用于管理界面访问的 15672 端口,映射到主机的 15672 端口。
- -e RABBITMQ_DEFAULT_USER=admin:设置 RabbitMQ 的默认用户名是 admin。
- -e RABBITMQ_DEFAULT_PASS=admin:设置 RabbitMQ 的默认密码是 admin。
- -v /home/rabbitmq:/var/lib/rabbitmq:将宿主机 /home/rabbitmq 目录挂载到容器内的 /var/lib/rabbitmq 目录,该目录是 RabbitMQ 存储数据的位置,这样可以防止容器删除后数据丢失。
- rabbitmq:management:指定使用带有管理界面的 RabbitMQ 镜像。
三、访问
http://192.168.40.111:15672/
输入 admin/admin

四、安装延迟队列插件
- 首先下载 rabbitmq_delayed_message_exchange-3.12.0.ez 文件上传到RabbitMQ所在服务器,下载地址:Community Plugins | RabbitMQ
- 切换到插件所在目录,执行 docker cp rabbitmq_delayed_message_exchange-3.12.0.ez rabbitmq:/plugins 命令,将刚插件拷贝到容器内plugins目录下。
- 执行 docker exec -it rabbitmq /bin/bash 命令进入到容器内部,并 cd plugins 进入plugins目录。
- 执行 ls -l|grep delay 命令查看插件是否 copy 成功。
- 在容器内 plugins 目录下,执行命令 rabbitmq-plugins enable rabbitmq_delayed_message_exchange 启用插件。
- exit 命令退出RabbitMQ容器内部,然后执行 docker restart rabbitmq 命令重启RabbitMQ容器。
