docker安装消息队列mq中的rabbit服务

在现代化的分布式系统中,消息队列(Message Queue, MQ)已经成为了一种不可或缺的组件。RabbitMQ作为一款高性能、开源的消息队列软件,因其高可用性、可扩展性和易用性而广受欢迎。本文将详细介绍如何在Docker环境中安装RabbitMQ服务,帮助读者轻松搭建起一个消息队列系统。

一、Docker环境准备

在开始之前,请确保你的计算机已经安装了Docker环境。你可以通过运行docker --version命令来检查Docker的版本信息。如果还没有安装Docker,请前往Docker官网下载并安装适合你操作系统的版本。

二、拉取RabbitMQ镜像

Docker Hub是一个开源的容器镜像库,上面存储了海量的容器镜像。我们可以通过Docker Hub来拉取RabbitMQ的镜像。在命令行终端中执行以下命令:

复制代码
 

bash复制代码

复制代码
docker pull rabbitmq:3-management

这里我们选择的是带有管理插件的RabbitMQ 3.x版本的镜像。如果你需要其他版本的RabbitMQ,可以在rabbitmq:后面跟上版本号,例如rabbitmq:3.8.9-management

三、创建并运行RabbitMQ容器

拉取完镜像后,我们可以使用Docker命令来创建并运行一个RabbitMQ容器。执行以下命令:

复制代码
 

bash复制代码

复制代码
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

这条命令的含义是:

  • -d:表示在后台运行容器。
  • --name rabbitmq:给容器指定一个名称(这里为rabbitmq),方便后续管理。
  • -p 5672:5672:将宿主机的5672端口映射到容器的5672端口,用于客户端与RabbitMQ服务器之间的通信。
  • -p 15672:15672:将宿主机的15672端口映射到容器的15672端口,用于访问RabbitMQ的管理界面。

安装PHPamqp扩展和依赖以及开启php.ini中的mq配置

持久化docker中的mq中设置的信息,防止每次重启docker,新建的账号,交换机,通道丢失

四、访问RabbitMQ管理界面

RabbitMQ启动后,我们可以通过浏览器访问其管理界面来查看和管理RabbitMQ服务器。在浏览器中输入http://127.0.0.1:15672/(如果你是在远程服务器上运行的RabbitMQ,请将localhost替换为服务器的IP地址),然后输入默认的登录账号和密码(guest/guest)即可登录。

在管理界面中,你可以查看RabbitMQ的队列、交换机、绑定等信息,还可以进行各种操作,如创建队列、发送消息等。

五、常见问题及解决方案

  1. Stats in management UI are disabled on this node

    如果在管理界面中看到这个提示,说明管理插件的统计功能被禁用了。你可以通过修改RabbitMQ的配置文件来启用它。具体方法可以参考RabbitMQ的官方文档。

  2. 端口冲突

    如果你发现无法访问RabbitMQ的管理界面,可能是端口冲突导致的。请检查宿主机上是否有其他服务占用了15672端口,并尝试更换一个未被占用的端口。

  3. 权限问题

    RabbitMQ默认使用guest账号作为管理员账号,但该账号只能在localhost上登录。如果你需要在远程机器上登录RabbitMQ的管理界面,需要创建一个新的账号并赋予相应的权限。

六、总结

本文详细介绍了如何在Docker环境中安装RabbitMQ服务,包括Docker环境准备、拉取RabbitMQ镜像、创建并运行RabbitMQ容器、访问RabbitMQ管理界面以及常见问题及解决方案。通过本文的学习,读者可以轻松地搭建起一个基于Docker的消息队列系统,为分布式系统的开发提供有力的支持。

相关推荐
努力的小白o(^▽^)o18 小时前
面向课堂考勤场景的桌面端人脸识别签到系统
python·人脸识别
pangares18 小时前
防火墙安全策略(基本配置)
服务器·php·apache
Sarvartha18 小时前
递归、回溯与动态规划学习笔记
笔记·学习·动态规划
思码逸研发效能18 小时前
代码度量分析入门:从0到1掌握核心指标
大数据·人工智能·研发效能·研发管理
LCG元18 小时前
固件加密保护:STM32F2 Flash读写保护,AES软件加密实现
stm32·嵌入式硬件·mongodb
云境筑桃源哇18 小时前
亿迈跨境分销商城启航
大数据·人工智能
摇滚侠18 小时前
讲一讲 SpringMVC,线程变量 ThreadLocal 的使用
java·spring boot·intellij-idea
眼镜哥(with glasses)19 小时前
网络技术三级考试综合题笔记整理(第二题、第三题)
网络·笔记·智能路由器
常利兵19 小时前
JWT从入门到精通:一文解锁生成、验证与防篡改秘籍
github
Johnstons19 小时前
读懂 TCP 标志位:网络运维中的“信号灯”
运维·网络·tcp/ip