docker 安装 Rabbitmq 详解

在平常的开发工作中,我们经常会使用到 rabbitmq,rabbitmq 主要可以进行应用解耦、异步通信、流量削峰、负载均衡、消息持久化、死信队列等。比如商城系统,下单后,通过消息队列通知库存系统、积分系统、物流系统等。发送短信时通过消息队列异步通知,导入处理大文件时通过消息队列异步处理等。那么 docker 下如何安装 rabbitmq 呢?今天简单来总结下主要步骤。

1:拉取镜像

通过命令 docker pull rabbitmq:版本号,拉取镜像,如果不输入则默认拉取最新版本的镜像。

注意rabbitmq 镜像分为数字版本镜像和带 management 的镜像。带 management 的主要是集成了管理界面和相关插件,管理界面需要运行一个 Web 服务器来提供服务。开发、测试阶段,需要使用管理页面直观的看到消息发送及接受情况,使用 management 可以提高工作效率。数字版本镜像只包含 rabbitmq 的核心功能,不包含管理界面和相关插件,所以其资源占用相对较少。如果对资源占用有严格的要求,且不需要可视化管理页面那就使用数字版本镜像。

2:创建挂载目录

复制代码
# 数据持久化目录
mkdir -p  /docker/rabbitmq/data:/var/lib/rabbitmq

# 日志目录
mkdir -p  /docker/rabbitmq/logs:/var/log/rabbitmq

3:启动 rabbitmq

(1):新建 docker-compose.yml 文件

复制代码
rabbitmq:
    # 带有管理界面的 rabbitmq 镜像
    image: rabbitmq:management  
    container_name: rabbitmq
    ports:
      # AMQP 协议端口
      - "5672:5672" 
      # rabbitmq 管理界面端口 
      - "15672:15672"  
    volumes:
      # 数据持久化目录
      - /usr/local/docker/rabbitmq/data:/var/lib/rabbitmq
       # 日志目录
      - /usr/local/docker/rabbitmq/logs:/var/log/rabbitmq 
    environment:
      # 设置用户名
      RABBITMQ_DEFAULT_USER: guest
      # 设置密码
      RABBITMQ_DEFAULT_PASS: 123456
    restart: always

(2):启动 docker compose up rabbitmq

启动报错,大致意思就是打开log目录没有权限,报错如下:

解决方案为给 /docker/rabbitmq/logs 目录添加权限,命令为 chmod 777 /docker/rabbitmq/logs,执行完成后,可以查看 logs 目录的权限,查看命令为 ls -l (小写的L),查看如下:

chmod 777 命令详解:chmod 用于修改文件或者目录访问权限。777 是采用数字的方式设置权限,第一个表示文件或者目录所有者(owner)权限、第二个表示所属组(group)权限、第三个表示其他用户(others)的权限。

读取权限(r):对应值为4

写入权限(w):对应值为2

执行权限(x):对应值为1

没有权限:对应值为0

7 代表拥有读取权限(4)、写入权限(2)和执行权限(1),即 4+2+1=7,权限为 rwx,即目录所有者、所属组、其他用户都可以操作该目录中的文件,新增、删除、修改、读取文件。

重新启动 rabbitmq,启动成功,日志如下:

可以使用 docker ps 查看启动的容器,如下:

4:进行测试

访问 ip地址 + 15672 端口,如 127.0.0.1::15672,访问成功,登录页面如下:

可能遇到的问题,访问不同,那么可能是防火墙端口的问题,可能是 15672 端口防火墙未开导致的,不同的内核版本有不同的对应命令,如果是 Centos 内核版本,查看版本可以用 cat /etc/os-release 命令,可以先查看 15672 端口是否开了防火墙,如果没开,则添加后重启防火墙,相关命令如下:

查看防火墙开端口:firewall-cmd --zone=public --list-ports

添加端口:firewall-cmd --zone=public --add-port=15672/tcp --permanent

重启防火墙:firewall-cmd --reload

以上为 docker 安装 rabbitmq 的基本步骤,主要是 docker-compose.yml 文件的编写。配置挂载目录,可以防止重启 rabbitmq 的时候,配置丢失等。消息队列可以实现异步通信、应用解耦、流量削峰等。

相关推荐
Johny_Zhao4 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple4 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
代码老y6 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
DuelCode7 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
杨浦老苏11 小时前
开源服务运行监控工具Lunalytics
docker·群晖·网站监控
DavidSoCool13 小时前
RabbitMQ使用topic Exchange实现微服务分组订阅
分布式·微服务·rabbitmq
呆萌的代Ma18 小时前
解决Mac上的老版本docker desktop 无法启动/启动后一直转圈/无法登陆账号的问题
macos·docker·eureka
feilieren18 小时前
Docker 安装 Elasticsearch 9
运维·elasticsearch·docker·es
KaiwuDB19 小时前
使用Docker实现KWDB数据库的快速部署与配置
数据库·docker
Bug退退退12319 小时前
RabbitMQ 高级特性之重试机制
java·分布式·spring·rabbitmq