OpsManage项目基于Docker Compose的部署指南
2025-07-09 06:18:29作者:袁立春Spencer
项目概述
OpsManage是一个基于Web的运维管理平台,通过容器化部署可以快速搭建完整的运维管理系统。本文将详细介绍如何使用Docker Compose文件部署OpsManage项目,包含MySQL、Redis、RabbitMQ、Web应用和Nginx等核心组件。
环境准备
在开始部署前,请确保系统已安装以下软件:
- Docker 18.06+
- Docker Compose 1.22+
建议系统资源:
- 内存:4GB以上
- 磁盘空间:20GB以上
核心服务配置解析
1. MySQL数据库服务
mysql:
image: mysql:5.7
environment:
- MYSQL_HOST=%
- MYSQL_DATABASE=opsmanage
- MYSQL_USER=数据库用户名
- MYSQL_PASSWORD=数据库用户密码
- MYSQL_ROOT_PASSWORD=数据库root密码
volumes:
- /data/apps/mysql:/var/lib/mysql
关键配置说明:
- 使用MySQL 5.7版本镜像
- 创建名为
opsmanage
的数据库 - 数据持久化到宿主机
/data/apps/mysql
目录 - 配置了严格的SQL模式和UTF8MB4字符集,确保中文支持
2. Redis缓存服务
redis:
image: redis:3.2.8
command: /bin/sh -c "redis-server --requirepass $$REDIS_PASSWORD"
environment:
REDIS_PASSWORD: "密码"
关键配置说明:
- 使用Redis 3.2.8版本镜像
- 设置了密码保护
- 禁用了AOF持久化(根据实际需求可调整)
3. RabbitMQ消息队列
rabbitmq:
image: rabbitmq:management
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin
关键配置说明:
- 使用带管理界面的RabbitMQ镜像
- 默认管理账号为admin/admin
- 暴露5672(AMQP)和15672(管理界面)端口
4. OpsManage Web应用
ops_web:
image: opsmanage-base:latest
volumes:
- /data/apps/OpsManage:/data/apps/opsmanage
- /data/apps/OpsManage/upload:/data/apps/opsmanage/upload
- /data/apps/OpsManage/logs:/data/apps/opsmanage/logs
关键配置说明:
- 使用自定义镜像
opsmanage-base:latest
- 挂载代码目录、上传目录和日志目录
- 依赖MySQL、Redis和RabbitMQ服务
5. Nginx反向代理
nginx:
image: nginx
volumes:
- /data/apps/nginx/logs:/var/log/nginx
- /data/apps/OpsManage/docker/opsmanage.conf:/etc/nginx/conf.d/default.conf
关键配置说明:
- 使用官方Nginx镜像
- 自定义配置文件挂载
- 代理Web应用的8000端口
部署步骤
-
准备目录结构
mkdir -p /data/apps/{mysql,redis,rabbitmq,nginx,OpsManage}
-
准备配置文件
- 将
opsmanage.conf
Nginx配置文件放入/data/apps/OpsManage/docker/
目录 - 确保配置文件正确代理到
ops_web:8000
- 将
-
修改环境变量
- 替换文件中的所有密码占位符为实际密码
- 确保MySQL和Redis密码与Web应用配置一致
-
启动服务
docker-compose up -d
-
验证服务
- 检查各容器状态:
docker-compose ps
- 访问Nginx代理的80端口
- 检查各容器状态:
常见问题解决
-
MySQL启动失败
- 检查
/data/apps/mysql
目录权限 - 查看MySQL日志:
docker logs mysql
- 检查
-
Web应用连接数据库失败
- 确认MySQL服务已正常启动
- 检查Web应用中的数据库连接配置
-
文件权限问题
- 确保挂载目录对Docker进程可写
- 特别是上传目录和日志目录
维护建议
-
定期备份
- MySQL数据目录:
/data/apps/mysql
- 上传文件目录:
/data/apps/OpsManage/upload
- MySQL数据目录:
-
日志管理
- Web应用日志:
/data/apps/OpsManage/logs
- Nginx日志:
/data/apps/nginx/logs
- Web应用日志:
-
升级注意事项
- 先备份数据再升级容器镜像
- 检查新版本与现有数据库的兼容性
通过以上配置和步骤,您可以快速部署一个完整的OpsManage运维管理系统。根据实际生产环境需求,可进一步调整资源配置和安全设置。