在 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 提供了清晰的指导。

相关推荐
hai405875 分钟前
Spring Boot中的响应与分层解耦架构
spring boot·后端·架构
Adolf_19931 小时前
Flask-JWT-Extended登录验证, 不用自定义
后端·python·flask
叫我:松哥2 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
海里真的有鱼2 小时前
Spring Boot 项目中整合 RabbitMQ,使用死信队列(Dead Letter Exchange, DLX)实现延迟队列功能
开发语言·后端·rabbitmq
工业甲酰苯胺2 小时前
Spring Boot 整合 MyBatis 的详细步骤(两种方式)
spring boot·后端·mybatis
新知图书2 小时前
Rust编程的作用域与所有权
开发语言·后端·rust
wn5313 小时前
【Go - 类型断言】
服务器·开发语言·后端·golang
希冀1234 小时前
【操作系统】1.2操作系统的发展与分类
后端
GoppViper4 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
爱上语文5 小时前
Springboot的三层架构
java·开发语言·spring boot·后端·spring