在 CentOS 上使用 Docker 运行 RabbitMQ

在 CentOS 上使用 Docker 运行 RabbitMQ

使用Docker来运行RabbitMQ非常方便,以下是一个简单的步骤,以YAML配置文件方式创建和运行RabbitMQ容器。

构建容器

  1. 创建Docker Compose文件

创建一个docker-compose.yml文件,内容如下:

yaml 复制代码
version: '3'

services:
  rabbitmq:
    image: "rabbitmq:3-management"
    ports:
      - "5672:5672" # RabbitMQ default port
      - "15672:15672" # RabbitMQ Management UI port
    environment:
      RABBITMQ_DEFAULT_USER: guest
      RABBITMQ_DEFAULT_PASS: guest

在这个Compose文件中,我们使用了RabbitMQ的官方镜像,并映射了RabbitMQ的默认端口(5672)和管理界面端口(15672)。同时,通过environment指定了RabbitMQ的默认用户名和密码。

  1. 启动RabbitMQ容器

在终端中,导航到包含docker-compose.yml文件的目录,并执行以下命令:

bash 复制代码
docker-compose up -d

这将下载RabbitMQ镜像并启动一个包含RabbitMQ服务的Docker容器。通过-d选项,容器将在后台运行。

  1. 访问RabbitMQ管理界面

在浏览器中访问RabbitMQ的管理界面:http://localhost:15672/。使用先前在Compose文件中指定的用户名和密码(默认为guest/guest)登录。

现在,你已经成功在Docker中运行了一个RabbitMQ容器,并可以通过管理界面监控和管理RabbitMQ实例。可以使用RabbitMQ的默认端口(5672)来与其它应用程序通信。

但是,如果不是本地,还需要进行端口放行!

端口放行

如果你在CentOS上使用防火墙(firewalld)并希望放行RabbitMQ管理界面的端口(15672),可以按照以下步骤操作:

  1. 检查firewalld状态

首先,检查firewalld是否在运行。执行以下命令:

bash 复制代码
sudo systemctl status firewalld

如果firewalld未运行,你可以启动它:

bash 复制代码
sudo systemctl start firewalld
  1. 放行端口

如果你在CentOS上使用防火墙(firewalld)并希望放行RabbitMQ的管理界面端口(15672和5672),可以按照以下步骤操作:

  1. 检查firewalld状态

首先,检查firewalld是否在运行。执行以下命令:

bash 复制代码
sudo systemctl status firewalld

如果firewalld未运行,你可以启动它:

bash 复制代码
sudo systemctl start firewalld
  1. 放行端口

添加新的firewalld服务并放行15672和5672端口:

bash 复制代码
sudo firewall-cmd --permanent --new-service=rmq-management
sudo firewall-cmd --permanent --service=rmq-management --set-short="RabbitMQ Management"
sudo firewall-cmd --permanent --service=rmq-management --set-description="RabbitMQ Management Console"
sudo firewall-cmd --permanent --service=rmq-management --add-port=15672/tcp
sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --reload

这样就添加了一个名为 rmq-management 的服务,并将15672和5672端口添加到防火墙规则中。--permanent标志将这些规则永久保存,--reload 重新加载防火墙配置。

  1. 验证规则

可以使用以下命令查看新规则是否正确应用:

bash 复制代码
sudo firewall-cmd --list-all

确保在输出中看到 rmq-management 服务和端口 156725672

现在,你应该能够通过RabbitMQ管理界面的端口(15672)和RabbitMQ默认端口(5672)访问RabbitMQ。请记住,具体的命令可能因CentOS版本的不同而有所不同。如果你使用的是CentOS 7或8,上述命令应该能够正常工作。 注:5672代码中使用

总结

使用 Docker 在 CentOS 上搭建 RabbitMQ 是一种方便快捷的方式,同时直接放行端口使得管理界面更加容易访问。通过容器化,你可以轻松部署和管理 RabbitMQ,适用于开发、测试以及生产环境。希望本文对你在 CentOS 上运行 RabbitMQ 提供了清晰的指导。

相关推荐
程序员爱钓鱼1 小时前
Go语言实战案例-创建模型并自动迁移
后端·google·go
javachen__1 小时前
SpringBoot整合P6Spy实现全链路SQL监控
spring boot·后端·sql
uzong6 小时前
技术故障复盘模版
后端
GetcharZp7 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
桦说编程7 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研7 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi8 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
阿华的代码王国9 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Jimmy9 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
AntBlack9 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt