Docker Desktop 安装 RabbitMQ

Docker Desktop 安装 RabbitMQ 并挂载本地卷

在开发环境中,RabbitMQ 是一个非常流行的开源消息中间件,广泛用于实现消息队列和异步任务处理。通过 Docker Desktop,我们可以轻松地在本地安装并运行 RabbitMQ,并通过挂载本地卷来实现数据的持久化,确保即使容器被删除,数据也不会丢失。

一、准备工作

确保你已经安装了 Docker Desktop。如果尚未安装,请从 Docker 官方网站 下载并安装。

二、拉取 RabbitMQ 镜像

打开终端或命令提示符,运行以下命令来拉取带有管理插件的 RabbitMQ 镜像:

复制代码
docker pull rabbitmq:management

这个命令会从 Docker Hub 下载带有管理插件的 RabbitMQ 镜像到你的本地机器。

三、创建本地目录

为了实现数据持久化,我们需要创建一个本地目录来存储 RabbitMQ 的数据。运行以下命令来创建目录(根据你的需求修改路径):

bash 复制代码
mkdir -p /path/to/rabbitmq/data

在 Windows 上,路径可能类似于 C:\ProgramData\Docker\Containers\rabbitmq\data

四、运行 RabbitMQ 容器并挂载本地卷

使用以下命令运行 RabbitMQ 容器,并将本地目录挂载到容器内的数据目录:

kotlin 复制代码
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v C:\ProgramData\Docker\Containers\rabbitmq\data/data:/var/lib/rabbitmq rabbitmq:management

这条命令的含义如下:

  • -d:后台运行容器。
  • -p 5672:5672:将容器的 5672 端口映射到宿主机的 5672 端口,用于 RabbitMQ 消息队列。
  • -p 15672:15672:将容器的 15672 端口映射到宿主机的 15672 端口,用于访问 RabbitMQ 的管理界面。
  • -v /path/to/rabbitmq/data:/var/lib/rabbitmq:将本地目录挂载到容器内的 /var/lib/rabbitmq 目录,实现数据持久化。
  • --name rabbitmq:为容器命名为 rabbitmq
  • rabbitmq:management:指定使用带有管理插件的 RabbitMQ 镜像。

五、验证容器运行状态

运行以下命令来查看所有正在运行的容器,确认 RabbitMQ 容器已经启动:

复制代码
docker ps

你应该能看到名为 rabbitmq 的容器正在运行。

六、访问 RabbitMQ 管理界面

打开浏览器,访问 http://localhost:15672。使用默认用户名 guest 和密码 guest 登录(如果你在启动容器时设置了其他用户名和密码,请使用你设置的用户名和密码)。

七、数据持久化验证

为了验证数据是否持久化,你可以:

  1. 在管理界面中创建一个队列或交换器。

  2. 停止并删除容器:

    arduino 复制代码
    docker stop rabbitmq
    docker rm rabbitmq
  3. 重新运行容器:

    bash 复制代码
    docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v /path/to/rabbitmq/data:/var/lib/rabbitmq rabbitmq:management
  4. 重新访问管理界面,检查之前创建的队列或交换器是否仍然存在。

八、总结

通过上述步骤,我们成功地在 Docker Desktop 上安装了 RabbitMQ,并通过挂载本地卷实现了数据的持久化。这种方式不仅简化了 RabbitMQ 的安装和配置过程,还确保了数据的安全性和持久性,非常适合开发和测试环境。

如果你在操作过程中遇到任何问题,可以参考 Docker 和 RabbitMQ 的官方文档,或者在相关社区寻求帮助。希望这篇文章能帮助你更好地利用 Docker Desktop 和 RabbitMQ,提升你的开发效率。

相关推荐
她说..29 分钟前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
梦梦代码精1 小时前
开源、免费、可商用:BuildingAI一站式体验报告
开发语言·前端·数据结构·人工智能·后端·开源·知识图谱
李慕婉学姐2 小时前
【开题答辩过程】以《基于Spring Boot的疗养院理疗管理系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring boot·后端
tb_first2 小时前
SSM速通2
java·javascript·后端
一路向北⁢2 小时前
Spring Boot 3 整合 SSE (Server-Sent Events) 企业级最佳实践(一)
java·spring boot·后端·sse·通信
风象南2 小时前
JFR:Spring Boot 应用的性能诊断利器
java·spring boot·后端
爱吃山竹的大肚肚3 小时前
微服务间通过Feign传输文件,处理MultipartFile类型
java·spring boot·后端·spring cloud·微服务
毕设源码-邱学长5 小时前
【开题答辩全过程】以 基于Springboot的酒店住宿信息管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
咖啡啡不加糖5 小时前
Grafana 监控服务指标使用指南:打造可视化监控体系
java·后端·grafana
gAlAxy...6 小时前
SpringBoot Servlet 容器全解析:嵌入式配置与外置容器部署
spring boot·后端·servlet