当前位置: 首页 > news >正文

Java开发环境搭建之 9.使用Docker Compose 安装部署RabbitMQ

环境:
OS:Ubuntu24

1.创建目录并设置权限:

# 删除现有数据(如果前面有创建过此目录,但配置rabbitMQ出现了错误)
sudo rm -rf /var/data/rabbitmq/# 重新创建目录结构
sudo mkdir -p /var/data/rabbitmq/{data,log,conf}# 设置正确的所有权(RabbitMQ容器使用999用户)
sudo chown -R 999:999 /var/data/rabbitmq/# 设置正确的权限(750表示所有者有全部权限,同组用户有读和执行权限)
sudo chmod -R 750 /var/data/rabbitmq/

说明: 如果不手动创建和设置权限,则将会在安装部署成功之后,访问RabbitMQ管理后台的时候报错!
从而登录不了管理后台!

2.创建yml文件

sudo vim docker-compose.yml

3.完整的 docker-compose.yml代码如下:

version: '2'networks:network:ipam:driver: defaultconfig:- subnet: '177.7.0.0/16'services:rabbitmq:# 使用官方 RabbitMQ 镜像(包含 Web 管理界面)image: rabbitmq:3.12-management# 容器名称标识container_name: rabbitmq# 赋予容器特权模式(允许访问宿主机设备)privileged: true# 重启策略:容器退出时自动重启restart: alwaysports:# AMQP协议端口映射:宿主机的5672映射到容器的5672# AMQP是RabbitMQ的核心消息协议端口,应用程序通过此端口连接- 5672:5672# Web管理界面端口映射:宿主机的15672映射到容器的15672# 通过此端口访问RabbitMQ的Web管理控制台- 15672:15672environment:# RabbitMQ默认管理员用户名(与minio保持一致)RABBITMQ_DEFAULT_USER: admin# RabbitMQ默认管理员密码(与minio保持一致)RABBITMQ_DEFAULT_PASS: admin123# 设置容器时区为亚洲/上海(与minio保持一致)TZ: Asia/Shanghai# 可选:设置默认虚拟主机(保持默认根虚拟主机)RABBITMQ_DEFAULT_VHOST: /volumes:# 数据持久化目录映射:将容器内数据目录挂载到宿主机# /var/lib/rabbitmq:容器内RabbitMQ存储消息队列数据的目录# 作用:确保消息队列数据在容器重启后不会丢失- /var/data/rabbitmq/data:/var/lib/rabbitmq# 日志持久化目录映射:将容器内日志目录挂载到宿主机# /var/log/rabbitmq:容器内RabbitMQ存储运行日志的目录# 作用:便于排查问题和查看运行状态- /var/data/rabbitmq/log:/var/log/rabbitmq# 时区同步:将宿主机时区文件映射到容器内(与minio配置一致)# 作用:确保容器时间与宿主机保持一致- /etc/localtime:/etc/localtime:ro# 时区信息同步:补充时区配置(与minio配置一致)- /etc/timezone:/etc/timezone:rouser: "999"  # 指定容器以999用户运行,与主机目录所有权匹配# 网络配置,集成到现有Docker网络中networks:network:# 为RabbitMQ容器分配固定IP地址(按您要求的177.7.0.20)ipv4_address: 177.7.0.20
  1. 启动 RabbitMQ 服务
docker-compose up -d
  1. 验证:

使用 docker-compose logs minio 查看日志,如果没有权限错误。

docker ps | grep rabbitmqdocker logs rabbitmq

在这里插入图片描述

  1. 在服务器上的防火墙放行端口:
    云服务商(腾讯云、阿里云、AWS等)都有安全组功能,它相当于一个云防火墙,默认只开放少数常用端口(如22, 80, 443),其他所有端口(包括9000, 9001)都是关闭的。
    如果没有放行端口,是访问不了的,如下图所示:
    在这里插入图片描述
操作:登录到您的云服务器管理控制台,找到“安全组”配置。修改:为您这台服务器的安全组添加一条入站规则(Inbound Rule)。类型:自定义 TCP端口范围:5672;15672 (或者分开两条规则:5672和 15672)源:0.0.0.0/0 (允许所有IP访问) 或 您的本地IP地址(更安全)策略:允许保存后通常立即生效。

在这里插入图片描述

  1. 访问
    RabbitMQ 管理控制台:http://<您的服务器IP>:15672
    RabbitMQ API 服务: http://<您的服务器IP>:5672
    在这里插入图片描述
    使用 admin/admin123 登录,如果能成功进入管理界面并创建存储桶,说明一切正常。
    在这里插入图片描述
http://www.dtcms.com/a/418238.html

相关文章:

  • 智能家居:从设备互联到智慧感知的技术演进
  • 做网站是个什么行业网站设计示例
  • D018 vue+django 旅游图谱推荐问答系统|neo4j数据库|智能问答
  • 11. Jmeter性能与优化
  • 水脉织城・文脉映画:泰州城市旅游宣传片的专业化叙事路径
  • QT文件解析与乱码问题
  • 医疗编程AI技能树与培训技能树报告(国内外一流大学医疗AI相关专业分析2025版,下)
  • seo网站快速排名企业域名怎么填写
  • 谈谈数学和式的理解和应用
  • 【Linux指令 (一)】Linux 命令行入门:从零开始理解Linux系统理论核心概念与基础指令
  • 网站建设案例赏析网站制作比较好的制作公司
  • 线上JVM问题定位常用命令
  • 通过配置 GitLab 自动触发项目自动化构建与部署
  • 【qml-12】Quick3D实现机器人鼠标拖拽转换视角(无限角度)与滚轮缩放
  • h5实现一个吸附在键盘上的工具栏
  • 解决 sqlplus / as sysdba 登录缓慢问题
  • Mysql DBA学习笔记(主从复制)
  • 网站开发的交付文档企业策划是什么意思
  • 个人网站主机选择上海品牌全案设计公司
  • 布谷娱乐直播系统源码开发实用功能:技术驱动更迭的创新体验
  • ArcGIS JSAPI 高级教程 - 高亮效果优化之开启使用多高亮样式
  • 元宇宙的搜索引擎:如何在虚拟世界中查找信息
  • Unity-AB包
  • Rust开发环境配置
  • 【mdBook】5.2.1 通用配置
  • Rust自定义函数引用
  • Java 集合体系 —— List 篇
  • 操作系统应用开发(十一)RustDesk在线编译自己客户端——东方仙盟筑基期
  • 【mdBook】5.2 配置
  • 网站建设难么让网站快速收录