在 CentOS 上使用 Docker 运行 RabbitMQ
使用Docker来运行RabbitMQ非常方便,以下是一个简单的步骤,以YAML配置文件方式创建和运行RabbitMQ容器。
构建容器
- 创建Docker Compose文件
创建一个docker-compose.yml
文件,内容如下:
version: '3'services:rabbitmq:image: "rabbitmq:3-management"ports:- "5672:5672" # RabbitMQ default port- "15672:15672" # RabbitMQ Management UI portenvironment:RABBITMQ_DEFAULT_USER: guestRABBITMQ_DEFAULT_PASS: guest
在这个Compose文件中,我们使用了RabbitMQ的官方镜像,并映射了RabbitMQ的默认端口(5672)和管理界面端口(15672)。同时,通过environment
指定了RabbitMQ的默认用户名和密码。
- 启动RabbitMQ容器
在终端中,导航到包含docker-compose.yml
文件的目录,并执行以下命令:
docker-compose up -d
这将下载RabbitMQ镜像并启动一个包含RabbitMQ服务的Docker容器。通过-d
选项,容器将在后台运行。
- 访问RabbitMQ管理界面
在浏览器中访问RabbitMQ的管理界面:http://localhost:15672/。使用先前在Compose文件中指定的用户名和密码(默认为guest/guest
)登录。
现在,你已经成功在Docker中运行了一个RabbitMQ容器,并可以通过管理界面监控和管理RabbitMQ实例。可以使用RabbitMQ的默认端口(5672)来与其它应用程序通信。
但是,如果不是本地,还需要进行端口放行!
端口放行
如果你在CentOS上使用防火墙(firewalld)并希望放行RabbitMQ管理界面的端口(15672),可以按照以下步骤操作:
- 检查firewalld状态
首先,检查firewalld是否在运行。执行以下命令:
sudo systemctl status firewalld
如果firewalld未运行,你可以启动它:
sudo systemctl start firewalld
- 放行端口
如果你在CentOS上使用防火墙(firewalld)并希望放行RabbitMQ的管理界面端口(15672和5672),可以按照以下步骤操作:
- 检查firewalld状态
首先,检查firewalld是否在运行。执行以下命令:
sudo systemctl status firewalld
如果firewalld未运行,你可以启动它:
sudo systemctl start firewalld
- 放行端口
添加新的firewalld服务并放行15672和5672端口:
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
重新加载防火墙配置。
- 验证规则
可以使用以下命令查看新规则是否正确应用:
sudo firewall-cmd --list-all
确保在输出中看到 rmq-management
服务和端口 15672
和 5672
。
现在,你应该能够通过RabbitMQ管理界面的端口(15672)和RabbitMQ默认端口(5672)访问RabbitMQ。请记住,具体的命令可能因CentOS版本的不同而有所不同。如果你使用的是CentOS 7或8,上述命令应该能够正常工作。
注:5672代码中使用
总结
使用 Docker 在 CentOS 上搭建 RabbitMQ 是一种方便快捷的方式,同时直接放行端口使得管理界面更加容易访问。通过容器化,你可以轻松部署和管理 RabbitMQ,适用于开发、测试以及生产环境。希望本文对你在 CentOS 上运行 RabbitMQ 提供了清晰的指导。