首页
/ ServerStatus项目Docker Compose部署指南

ServerStatus项目Docker Compose部署指南

2025-07-08 07:04:54作者:霍妲思

ServerStatus是一个轻量级的服务器监控工具,可以实时展示多台服务器的运行状态。本文将详细介绍如何使用Docker Compose部署ServerStatus服务,帮助开发者快速搭建自己的服务器监控系统。

核心组件解析

ServerStatus的Docker Compose配置主要包含以下几个关键部分:

  1. 服务定义:使用serverstatus作为服务名称
  2. 构建配置:基于当前目录的Dockerfile构建镜像
  3. 健康检查:确保服务正常运行
  4. 网络配置:自定义网络和IP地址分配
  5. 数据卷挂载:配置文件持久化
  6. 端口映射:暴露必要端口

详细配置说明

1. 基础服务配置

services:
  serverstatus:
    build:
      context: .
      dockerfile: Dockerfile
    image: serverstatus_server

这部分定义了服务的基本构建方式:

  • 使用当前目录(.)作为构建上下文
  • 使用Dockerfile作为构建文件
  • 构建后的镜像命名为serverstatus_server

2. 健康检查机制

healthcheck:
  test: curl --fail http://localhost:80 || bash -c 'kill -s 15 -1 && (sleep 10; kill -s 9 -1)'
  interval: 30s
  timeout: 10s
  retries: 5

健康检查配置确保了服务的可靠性:

  • 每30秒检查一次服务状态
  • 检查超时时间为10秒
  • 最多重试5次
  • 检查失败时执行优雅终止(发送SIGTERM信号)和强制终止(发送SIGKILL信号)

3. 容器运行参数

container_name: serverstatus
restart: unless-stopped

这部分定义了容器的运行行为:

  • 指定容器名称为serverstatus
  • 设置自动重启策略为"除非手动停止"(unless-stopped)

4. 网络配置

networks:
  serverstatus-network:
    ipv4_address: 172.23.0.2

网络配置特点:

  • 使用自定义网络serverstatus-network
  • 为容器分配固定IP地址172.23.0.2

5. 数据持久化

volumes:
  - ./server/config.json:/ServerStatus/server/config.json 
  - ./web/json:/usr/share/nginx/html/json

数据卷挂载实现了:

  • 将本地的config.json映射到容器内配置路径
  • 将web/json目录映射到Nginx的JSON数据目录

6. 端口映射

ports:
  - 35601:35601
  - 8080:80

端口映射说明:

  • 将容器内的35601端口映射到主机的35601端口(用于客户端连接)
  • 将容器内的80端口映射到主机的8080端口(用于Web访问)

7. 网络定义

networks:
  serverstatus-network:
    ipam:
      config:
        - subnet: 172.23.0.0/24

网络详细配置:

  • 创建名为serverstatus-network的自定义网络
  • 使用IP地址管理(IPAM)配置子网为172.23.0.0/24

部署实践建议

  1. 准备工作

    • 确保已安装Docker和Docker Compose
    • 准备好config.json配置文件
    • 创建必要的目录结构
  2. 启动服务

    docker-compose up -d
    
  3. 验证部署

    • 访问http://localhost:8080查看Web界面
    • 检查日志确认服务正常运行
  4. 维护建议

    • 定期备份config.json配置文件
    • 监控容器资源使用情况
    • 根据实际需求调整健康检查参数

常见问题解答

Q: 为什么需要固定IP地址? A: 固定IP便于其他服务稳定访问ServerStatus,避免因IP变动导致连接问题。

Q: 如何修改Web访问端口? A: 修改ports配置中的8080为其他端口号,如"8081:80"。

Q: 健康检查失败会发生什么? A: 容器会先尝试优雅终止,10秒后强制终止,然后根据restart策略可能自动重启。

通过本文的详细解析,开发者可以全面理解ServerStatus的Docker Compose部署配置,并根据实际需求进行调整。这种容器化部署方式大大简化了ServerStatus的安装和维护工作,是生产环境部署的理想选择。