RabbitMQ Docker 一键部署脚本
·
🛠️ RabbitMQ Docker 一键部署脚本
此脚本用于在 Linux 环境下快速部署带有管理界面的 RabbitMQ。它会自动处理数据目录创建、旧容器清理以及端口映射配置。
脚本功能
- 自动环境准备:检查并创建持久化数据目录。
- 智能更新:如果存在同名容器,自动停止并删除旧实例,实现“重启即更新”。
- 开箱即用:预设了默认管理员账号和密码,无需手动进入容器配置。
使用方法
- 在服务器创建一个文件
install_rabbitmq.sh。 - 将下方代码粘贴进去。
- 赋予执行权限并运行:
chmod +x install_rabbitmq.sh ./install_rabbitmq.sh
脚本内容
#!/bin/bash
# ==========================================
# RabbitMQ Docker 自动化部署脚本
# 适用于 CentOS/Ubuntu/Debian 等系统
# ==========================================
# --- ⚙️ 配置区域 (可根据需要修改) ---
CONTAINER_NAME="rabbitmq" # 容器名称
IMAGE_NAME="rabbitmq:3-management" # 镜像版本 (带 management 插件)
HOST_PORT_APP=5672 # AMQP 协议端口
HOST_PORT_WEB=15672 # Web 管理界面端口
DATA_DIR="./rabbitmq_data" # 本地数据挂载目录
DEFAULT_USER="admin" # 默认管理员账号
DEFAULT_PASS="123456" # 默认管理员密码 (生产环境请修改!)
# --- 🎨 颜色定义 (美化输出) ---
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}>>> 正在初始化 RabbitMQ 部署流程...${NC}"
# 1. 检查并创建数据目录
if [ ! -d "$DATA_DIR" ]; then
echo -e "${YELLOW}[INFO] 数据目录不存在,正在创建: $DATA_DIR${NC}"
mkdir -p "$DATA_DIR"
# 赋予权限以避免容器启动时的权限错误
chmod -R 777 "$DATA_DIR"
fi
# 2. 检查旧容器是否存在
# 如果存在同名容器,则视为更新操作,先停止并删除
if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
echo -e "${YELLOW}[WARN] 检测到同名容器 '$CONTAINER_NAME' 已存在。${NC}"
echo -e "${YELLOW} 正在停止并移除旧容器...${NC}"
docker stop $CONTAINER_NAME > /dev/null 2>&1
docker rm $CONTAINER_NAME > /dev/null 2>&1
echo -e "${GREEN}[OK] 旧容器已清理完毕。${NC}"
fi
# 3. 执行启动命令
echo -e "${BLUE}>>> 正在拉取镜像并启动容器...${NC}"
docker run -d \
--name $CONTAINER_NAME \
-p $HOST_PORT_APP:$HOST_PORT_APP \
-p $HOST_PORT_WEB:$HOST_PORT_WEB \
-v $DATA_DIR:/var/lib/rabbitmq \
-e RABBITMQ_DEFAULT_USER=$DEFAULT_USER \
-e RABBITMQ_DEFAULT_PASS=$DEFAULT_PASS \
$IMAGE_NAME
# 4. 检查结果反馈
if [ $? -eq 0 ]; then
echo ""
echo -e "${GREEN}=========================================${NC}"
echo -e "${GREEN}🚀 RabbitMQ 部署成功!${NC}"
echo -e "${GREEN}=========================================${NC}"
echo -e "🌐 管理后台地址: http://<你的服务器IP>:$HOST_PORT_WEB"
echo -e "🔑 登录账号: $DEFAULT_USER"
echo -e "🔒 登录密码: $DEFAULT_PASS"
echo ""
else
echo ""
echo -e "${RED}❌ 部署失败!请检查 Docker 服务状态或端口是否被占用。${NC}"
fi
💡 注意事项
- 防火墙设置:如果你的服务器开启了防火墙(如
firewalld或云服务商的安全组),请务必放行15672(Web界面) 和5672(客户端连接) 端口。 - 数据安全:脚本中使用了
chmod 777来确保数据目录权限,这在开发环境中很方便,但在高安全要求的生产环境中,建议根据具体的 UID/GID 进行更严格的权限控制。 - 持久化:数据会保存在脚本所在目录下的
rabbitmq_data文件夹中,即使删除容器,数据也不会丢失。
更多推荐



所有评论(0)