Files

6.0 KiB

Docker 部署指南

本项目提供多种 Docker 部署方式,支持多种架构和配置。

目录

快速开始

使用 Docker Hub 镜像(推荐)

# 拉取最新镜像
docker pull hx100cv/hyc-download:latest

# 运行容器
docker run -d \
  --name hyc-download \
  -p 8080:8080 \
  -v /data:/data \
  -v /downloads:/downloads \
  hx100cv/hyc-download:latest

使用 GitHub Container Registry

# 拉取镜像
docker pull ghcr.io/hexikx/mirror_server:latest

# 运行容器
docker run -d \
  --name hyc-download \
  -p 8080:8080 \
  -v /data:/data \
  -v /downloads:/downloads \
  ghcr.io/hexikx/mirror_server:latest

Docker 镜像

多架构支持

项目自动构建以下架构的镜像:

架构 镜像标签
Linux AMD64 hx100cv/hyc-download:amd64-latest
Linux ARM64 hx100cv/hyc-download:arm64v8-latest
Linux ARMv7 hx100cv/hyc-download:arm32v7-latest

拉取特定架构

# AMD64
docker pull hx100cv/hyc-download:amd64-latest

# ARM64
docker pull hx100cv/hyc-download:arm64v8-latest

# ARMv7
docker pull hx100cv/hyc-download:arm32v7-latest

使用 Manifest(自动选择架构)

# 自动选择对应架构的镜像
docker pull hx100cv/hyc-download:latest

Dockerfile 说明

Dockerfile(推荐)

完整功能镜像,包含所有依赖。

FROM hx100cv/hyc-download:latest

Dockerfile.lite

轻量级镜像,适合资源受限的设备。

FROM hx100cv/hyc-download:lite

Dockerfile.multiarch

用于构建多架构镜像的 Dockerfile。

# 构建多架构镜像
docker buildx build -f docker/Dockerfile.multiarch \
  --platform linux/amd64,linux/arm64,linux/arm/v7 \
  -t hx100cv/hyc-download:multi \
  --push .

Docker Compose

基础用法

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

配置文件

项目提供以下 Docker Compose 配置文件:

文件 说明
docker-compose.yml 完整配置
docker-compose.lite.yml 轻量配置
docker-compose.raspberry.yml Raspberry Pi 配置
# 使用完整配置
docker-compose -f docker-compose.yml up -d

# 使用轻量配置
docker-compose -f docker-compose.lite.yml up -d

# 使用 Raspberry Pi 配置
docker-compose -f docker-compose.raspberry.yml up -d

带 Nginx 反向代理

docker-compose --profile with-nginx up -d

Kubernetes 部署

部署文件

项目提供以下 K8s 配置文件:

文件 说明
k8s/deployment.yaml Deployment 配置
k8s/service.yaml Service 配置
k8s/helm/ Helm Chart

使用 Helm 部署

# 添加 Helm 仓库
helm repo add hyc-download https://hexikx.github.io/mirror_server

# 更新 Helm 仓库
helm repo update

# 部署
helm install my-hyc-download hyc-download/hyc-download

手动部署

# 应用配置
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml

# 查看状态
kubectl get pods
kubectl get services

数据持久化

挂载卷

# 数据目录
-v /path/to/data:/data

# 下载目录
-v /path/to/downloads:/downloads

# 配置目录
-v /path/to/config:/app/config

使用命名卷

volumes:
  - data:/data
  - downloads:/downloads

环境变量

支持的环境变量

变量名 说明 默认值
HYC_HOST 监听地址 0.0.0.0
HYC_PORT 监听端口 8080
HYC_BASE_DIR 文件存储目录 /downloads
HYC_AUTH_TYPE 认证类型 none
HYC_AUTH_USER 认证用户名 admin
HYC_AUTH_PASS 认证密码 password
HYC_ENABLE_MONITOR 启用监控 true
HYC_ENABLE_MIRRORS 启用镜像加速 true
HYC_RATE_LIMIT 下载限速 0

示例

docker run -d \
  --name hyc-download \
  -p 8080:8080 \
  -e HYC_AUTH_TYPE=basic \
  -e HYC_AUTH_USER=admin \
  -e HYC_AUTH_PASS=secret \
  hx100cv/hyc-download:latest

健康检查

容器内置健康检查:

healthcheck:
  test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8080/api/v1/health')"]
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 10s

日志

查看日志

# 实时日志
docker logs -f hyc-download

# 最近 100 行
docker logs --tail 100 hyc-download

日志级别

# 详细输出
docker run -e HYC_VERBOSE=1 hx100cv/hyc-download:latest

# 静默模式
docker run -e HYC_QUIET=1 hx100cv/hyc-download:latest

更新升级

拉取新版本

# 拉取最新镜像
docker pull hx100cv/hyc-download:latest

# 停止旧容器
docker-compose down

# 启动新容器
docker-compose up -d

使用 Watchtower 自动更新

# 运行 Watchtower
docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  hyc-download

故障排查

容器无法启动

# 查看详细错误
docker logs hyc-download

# 进入容器排查
docker exec -it hyc-download /bin/bash

端口冲突

# 检查端口占用
netstat -tlnp | grep 8080

# 修改映射端口
docker run -p 8888:8080 hx100cv/hyc-download:latest

权限问题

# 修改目录权限
chmod 777 /data /downloads

# 或使用用户运行
docker run -u 1000:1000 hx100cv/hyc-download:latest