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

相关推荐
南瓜小米粥、4 分钟前
从可插拔拦截器出发:自定义、注入 Spring Boot、到生效路径的完整实践(Demo 版)
java·spring boot·后端
Huangmiemei9115 分钟前
Spring Boot项目的常用依赖有哪些?
java·spring boot·后端
天天摸鱼的java工程师14 分钟前
接口联调总卡壳?先问自己:真的搞清楚 HTTP 的 Header 和 Body 了吗?
java·后端
Nan_Shu_61428 分钟前
学习SpringBoot
java·spring boot·后端·学习·spring
间彧29 分钟前
微服务架构中@Data注解在DTO与实体类中的最佳实践
后端
间彧30 分钟前
Spring Boot中@Data注解的深度解析与实战应用
后端
数据库知识分享者小北31 分钟前
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
数据库·后端
Samsong44 分钟前
《C++ Primer Plus》读书笔记 第二章 开始学习C++
c++·后端
马尚来1 小时前
Netty核心技术及源码剖析
后端·netty
Access开发易登软件1 小时前
Access调用Azure翻译:轻松实现系统多语言切换
后端·python·低代码·flask·vba·access·access开发