查找镜像

  1. docker search rabbitmq:management

更多版本的镜像可以访问 Docker 官网:https://hub.docker.com/_/rabbitmq?tab=tags

下载镜像

management 的版本带有管理界面。

  1. docker pull rabbitmq:management

运行镜像

  1. docker run -d -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --hostname myRabbit --restart=always --name rabbitmq rabbitmq:management

镜像参数

:::warning -d:表示在后台运行容器;
-p:将容器的端口 5672(应用访问端口)和 15672 (控制台Web端口号)映射到主机中;
-e:指定环境变量:
RABBITMQ_DEFAULT_VHOST:默认虚拟机名;
RABBITMQ_DEFAULT_USER:默认的用户名;
RABBITMQ_DEFAULT_PASS:默认的用户密码;
—hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据,默认为主机名);
—name rabbitmq:设置容器名称;
rabbitmq:容器使用的镜像名称; :::

docker-compose

  1. version: '3'
  2. services:
  3. my_rabbitmq:
  4. image: rabbitmq:management
  5. ports:
  6. - 5672:5672
  7. - 15672:15672
  8. volumes:
  9. - D:/resource-docker/rabbitmq/data/config:/var/lib/rabbitmq/config
  10. - D:/resource-docker/rabbitmq/data/mnesia:/var/lib/rabbitmq/mnesia
  11. - D:/resource-docker/rabbitmq/data/schema:/var/lib/rabbitmq/schema
  12. environment:
  13. RABBITMQ_DEFAULT_VHOST: myRabbit
  14. RABBITMQ_DEFAULT_USER: admin
  15. RABBITMQ_DEFAULT_PASS: admin

自动启动

  1. docker update rabbitmq --restart=always

访问管理后台

访问管理界面的地址就是 http://[宿主机IP]:15672,可以使用默认的账户登录,用户名和密码都是guest,如果在运行镜像时配置有登录账号及密码,就使用配置的登录账户和密码登,如:http://192.168.3.40:15672/
1663299340124.png
提示: 如果无法访问可以尝试开启防火墙 15672 端口:

  1. firewall-cmd --zone=public --add-port=15672/tcp --permanent        
  2. firewall-cmd --reload

安装管理控制台插件

  1. docker exec -it rabbitmq /bin/bash
  2. rabbitmq-plugins enable rabbitmq_management

重置RabbitMQ队列

  1. docker exec -it rabbitmq /bin/sh
  2. rabbitmqctl stop_app
  3. rabbitmqctl reset
  4. rabbitmqctl start_app

已知问题

Windows 环境

Windows 环境中的 Docker,如果挂载了数据盘,会导致 rabbitmq 启动不了或者无限重启,暂时 Windows 还没解决这个 bug。

Management API returned status code 500

  1. docker exec -it rabbitmq /bin/bash
  2. # 进入容器
  3. cd /etc/rabbitmq/conf.d/
  4. echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
  5. exit
  6. # 重启容器
  7. docker restart rabbitmq