首页
/ OpsManage项目基于Docker Compose的部署指南

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端口

部署步骤

  1. 准备目录结构

    mkdir -p /data/apps/{mysql,redis,rabbitmq,nginx,OpsManage}
    
  2. 准备配置文件

    • opsmanage.confNginx配置文件放入/data/apps/OpsManage/docker/目录
    • 确保配置文件正确代理到ops_web:8000
  3. 修改环境变量

    • 替换文件中的所有密码占位符为实际密码
    • 确保MySQL和Redis密码与Web应用配置一致
  4. 启动服务

    docker-compose up -d
    
  5. 验证服务

    • 检查各容器状态:docker-compose ps
    • 访问Nginx代理的80端口

常见问题解决

  1. MySQL启动失败

    • 检查/data/apps/mysql目录权限
    • 查看MySQL日志:docker logs mysql
  2. Web应用连接数据库失败

    • 确认MySQL服务已正常启动
    • 检查Web应用中的数据库连接配置
  3. 文件权限问题

    • 确保挂载目录对Docker进程可写
    • 特别是上传目录和日志目录

维护建议

  1. 定期备份

    • MySQL数据目录:/data/apps/mysql
    • 上传文件目录:/data/apps/OpsManage/upload
  2. 日志管理

    • Web应用日志:/data/apps/OpsManage/logs
    • Nginx日志:/data/apps/nginx/logs
  3. 升级注意事项

    • 先备份数据再升级容器镜像
    • 检查新版本与现有数据库的兼容性

通过以上配置和步骤,您可以快速部署一个完整的OpsManage运维管理系统。根据实际生产环境需求,可进一步调整资源配置和安全设置。