centos docker 安装 rabbitmq

安装docker

1.更新现有的软件包

首先,确保您的系统是最新的,可以通过运行以下命令来实现:

复制代码
sudo yum update -y

2.移除旧版本的Docker

如果您之前安装过Docker,可能需要先卸载旧版本。使用以下命令来卸载旧版本的Docker:

复制代码
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

3.安装必要的依赖

安装一些必要的工具,如yum-utils,这将帮助我们添加Docker的官方仓库:

复制代码
sudo yum install -y yum-utils

4.选择国内的源地址

阿里云

复制代码
sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学源

复制代码
 sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

5.安装 Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

复制代码
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

6. 启动Docker服务

安装完成后,启动Docker服务并设置为开机自启:

复制代码
sudo systemctl start docker
sudo systemctl enable docker

安装rabbitmq

1.安装

复制代码
# 拉取docker镜像
docker pull rabbitmq:management
mkdir -p /usr/local/docker/rabbitmq

docker run -id --name=rabbitmq -v /usr/local/docker/rabbitmq:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:management

在这条命令中,我们做了以下配置:

-id:以交互模式启动容器并在后台运行。

--name=rabbitmq:为容器指定一个名称。

-v /usr/local/docker/rabbitmq:/var/lib/rabbitmq:将主机目录挂载到容器内的 /var/lib/rabbitmq,用于持久化数据。

-p 15672:15672:映射 RabbitMQ 管理页面端口。

-p 5672:5672:映射 RabbitMQ 消息接收端口。

-e RABBITMQ_DEFAULT_USER=admin:设置默认用户名。

-e RABBITMQ_DEFAULT_PASS=admin:设置默认密码。

2.查看容器日志

启动容器后,可以使用以下命令查看容器日志,确保 RabbitMQ 正常启动:

复制代码
docker logs -f rabbitmq

3.访问 RabbitMQ 管理界面

在浏览器中访问 http://<你的服务器地址>:15672,使用之前设置的用户名和密码(admin 和 admin)登录,即可访问 RabbitMQ 的管理界面。

4.配置说明

15672端口:RabbitMQ 的管理页面端口。

5672端口:RabbitMQ 的消息接收端口。

RABBITMQ_DEFAULT_USER 环境变量:指定 RabbitMQ 的用户名。

RABBITMQ_DEFAULT_PASS 环境变量:指定 RabbitMQ 的密码。

5.环境变量配置

RabbitMQ 容器通过指定环境变量的方式进行配置,这比修改配置文件便捷得多。以下是一些常用的环境变量:

RABBITMQ_DEFAULT_USER:默认用户名。

RABBITMQ_DEFAULT_PASS:默认密码。

RABBITMQ_ERLANG_COOKIE:Erlang 集群 cookie。

RABBITMQ_NODENAME:节点名称。

更多环境变量的详细信息可以参考 RabbitMQ 官方文档

6.持久化数据

为了确保 RabbitMQ 的数据在容器重启或删除后不会丢失,我们使用了 Docker 的卷(volume)功能。通过 -v /usr/local/docker/rabbitmq:/var/lib/rabbitmq 参数,我们将主机目录挂载到容器内的 /var/lib/rabbitmq,实现数据持久化。

7.备份与恢复

为了防止数据丢失,定期备份 RabbitMQ 的数据是非常重要的。可以使用以下命令备份数据:

复制代码
docker exec rabbitmq tar czf /backup/rabbitmq_backup.tar.gz /var/lib/rabbitmq

要恢复数据,可以使用以下命令:

复制代码
docker exec rabbitmq tar xzf /backup/rabbitmq_backup.tar.gz -C /

8.集群配置

RabbitMQ 支持集群配置,可以通过以下步骤实现:

启动多个 RabbitMQ 容器,并确保它们可以相互通信。

在每个节点上设置相同的 RABBITMQ_ERLANG_COOKIE。

使用 rabbitmqctl 命令将节点加入集群:

复制代码
docker exec rabbitmq1 rabbitmqctl stop_app
docker exec rabbitmq1 rabbitmqctl join_cluster rabbit@rabbitmq2
docker exec rabbitmq1 rabbitmqctl start_app

9.性能优化

为了提高 RabbitMQ 的性能,可以考虑以下优化措施:

调整 vm_memory_high_watermark 参数,控制内存使用。

使用 rabbitmq_management 插件监控性能。

调整 disk_free_limit 参数,确保磁盘空间充足。

10.常见问题排查

在使用 RabbitMQ 时,可能会遇到一些常见问题。以下是一些排查方法:

无法访问管理界面:检查 15672 端口是否开放,确保防火墙未阻止该端口。

消息堆积:检查消费者是否正常工作,确保消息被及时处理。

内存不足:调整 vm_memory_high_watermark 参数,增加内存限制。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Li_WenZhang/article/details/141181632

相关推荐
山人在山上32 分钟前
docker离线安装
java·docker·eureka
AI服务老曹40 分钟前
深度解析:基于 Docker 部署与 GB28181/RTSP 统一接入的跨平台 AI 视频管理系统(附源码交付与边缘计算架构设计)
人工智能·docker·音视频
三无推导44 分钟前
Prompt Optimizer 安装部署教程:用 Docker 快速搭建本地提示词优化工具
人工智能·ubuntu·docker·容器·性能优化·prompt·持续部署
IT策士1 小时前
Docker 从 0 到 1 再到 Kubernetes 实战:第 5 篇 Dockerfile 最佳实践与多阶段构建
docker·容器·kubernetes
未若君雅裁1 小时前
RabbitMQ 消息堆积怎么处理:消费者扩容、线程池与惰性队列
分布式·微服务·rabbitmq
一个儒雅随和的男子1 小时前
使用 Docker Compose 搭建 Kafka 集群
docker·kafka
weixin_468466851 小时前
Jellyfin 家庭媒体中心从零搭建指南
服务器·docker·容器·自动化·jellyfin·媒体中心
qq_452396232 小时前
第五篇:《Docker 容器生命周期管理》
运维·docker·容器
或与且与或非2 小时前
postgresql+rabbitmq集群搭建方案
数据库·postgresql·rabbitmq
ai产品老杨2 小时前
统一视频接入与多品牌利旧:基于 Docker 与 GB28181/RTSP 的边缘计算 AI 视频中台架构设计与源码交付实践
人工智能·docker·音视频