6.0 KiB
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