最完整的Jackett Docker Compose编排指南:从部署到进阶优化
你是否还在为多个BT tracker(种子追踪器)的API配置而烦恼?是否希望通过一个统一的接口管理所有下载源?Jackett作为一款强大的代理服务器,能够将Sonarr、Radarr等应用的查询请求转换为各 tracker 站点的特定查询,帮你轻松整合分散的资源。本文将带你通过Docker Compose实现Jackett的一站式部署与管理,无需复杂配置,10分钟即可完成从安装到使用的全流程。
为什么选择Docker Compose部署Jackett?
Jackett作为一款跨平台工具,支持Windows、Linux和macOS多种系统,但传统安装方式需要手动配置服务、依赖和端口,过程繁琐且易出错。而Docker Compose方案具有以下优势:
- 环境隔离:容器化部署避免系统依赖冲突,如 src/Jackett.Common/Utils/DotNetCoreUtil.cs 中提到的.NET运行时版本要求可通过容器自动满足。
- 一键部署:通过YAML文件定义服务,无需手动执行 install_service_systemd.sh 等脚本。
- 灵活扩展:可与Sonarr、Radarr等工具通过Docker网络无缝集成,形成完整的媒体管理生态。
准备工作:Docker环境搭建
在开始前,请确保你的系统已安装Docker和Docker Compose。以下是不同系统的安装命令:
Linux系统
# Ubuntu/Debian sudo apt update && sudo apt install docker.io docker-compose -y # CentOS/RHEL sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y sudo systemctl enable --now dockerWindows/macOS系统
直接下载Docker Desktop:https://www.docker.com/products/docker-desktop,安装后自动启用Docker Compose。
验证安装是否成功:
docker --version && docker-compose --version核心步骤:编写Docker Compose配置文件
基础配置模板
在任意目录创建docker-compose.yml文件,粘贴以下内容:
version: '3.8' services: jackett: image: linuxserver/jackett:latest container_name: jackett restart: unless-stopped environment: - PUID=1000 # 运行容器的用户ID,通过 `id -u` 命令获取 - PGID=1000 # 运行容器的用户组ID,通过 `id -g` 命令获取 - TZ=Asia/Shanghai # 时区设置,如 America/New_York - AUTO_UPDATE=true # 自动更新容器内Jackett版本 volumes: - ./config:/config # 配置文件持久化目录 - ./downloads:/downloads # 磁力链接下载目录(可选) ports: - "9117:9117" # Web管理界面端口,对应 [src/Jackett.Server/Program.cs](https://gitcode.com/GitHub_Trending/ja/Jackett/blob/1ef2211919b241fd6f82b8a9ecbc06f4c2aa2d4c/src/Jackett.Server/Program.cs?utm_source=gitcode_repo_files) 中的默认设置 networks: - media_network # 自定义网络,用于与Sonarr等服务通信 networks: media_network: driver: bridge配置参数详解
| 参数 | 说明 |
|---|---|
PUID/PGID | 确保容器内用户对挂载目录有读写权限,避免 src/Jackett.Common/Utils/EnvironmentUtil.cs 中提到的权限问题 |
TZ | 时区设置影响日志时间和定时任务,建议与宿主机保持一致 |
AUTO_UPDATE | 开启后容器会自动更新Jackett应用,无需手动执行 Updater/Program.cs 中的更新逻辑 |
| 端口映射 | 9117为Jackett默认端口,如需修改需同时调整 src/Jackett.Server/Utils/ServerUtil.cs 中的配置 |
启动服务与基础配置
启动Jackett服务
在docker-compose.yml所在目录执行:
docker-compose up -d查看服务状态:
docker-compose ps初始化配置流程
- 访问Web界面:在浏览器中打开
http://<服务器IP>:9117 - 完成初始设置:
- 同意用户协议
- 设置管理员密码(建议启用两步验证)
- 添加Tracker站点:在"Add Indexer"页面搜索并添加所需站点,如1337x、Rutracker等,配置方法可参考 README.md 中的Supported Trackers章节
进阶优化:性能与安全性增强
数据持久化与备份
为避免容器重建导致配置丢失,建议定期备份./config目录:
# 创建备份脚本 backup.sh #!/bin/bash BACKUP_DIR=/path/to/backups TIMESTAMP=$(date +%Y%m%d_%H%M%S) tar -czf $BACKUP_DIR/jackett_config_$TIMESTAMP.tar.gz ./config网络安全加固
- 限制访问来源:在路由器或防火墙中设置仅允许信任IP访问9117端口
- 启用HTTPS:配合Nginx反向代理实现SSL加密,示例配置:
server { listen 443 ssl; server_name jackett.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:9117; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }与媒体管理工具联动
通过Docker网络实现Jackett与Sonarr的通信,修改Sonarr的Docker Compose配置:
services: sonarr: image: linuxserver/sonarr:latest container_name: sonarr depends_on: - jackett networks: - media_network # 与Jackett加入同一网络 # 其他配置...在Sonarr中添加Jackett索引器:
- 进入「设置 > 索引器 > 添加」
- 选择「Torznab」类型
- URL填写
http://jackett:9117/api/v2.0/indexers/all/results/torznab/ - API密钥在Jackett的「Dashboard > API Key」中获取
常见问题排查与解决方案
服务启动失败
查看日志定位问题:
docker-compose logs -f jackett常见原因及解决:
- 权限错误:确保宿主机
./config目录权限正确,执行chmod -R 775 ./config - 端口冲突:修改
docker-compose.yml中的端口映射,如8117:9117
Tracker连接失败
- 检查Jackett容器网络连通性:
docker exec -it jackett ping 1337x.to- 验证索引器配置:参考 src/Jackett.Common/Definitions/1337x.yml 中的站点定义,确保Cookie和API参数正确
性能优化建议
- 禁用不必要的Tracker:在Jackett界面「Indexers」中禁用不常用站点,减少资源占用
- 调整日志级别:修改 src/Jackett.Common/Utils/LoggingSetup.cs 中的日志配置,生产环境建议使用"Warning"级别
总结与扩展学习
通过本文的Docker Compose方案,你已成功部署了一个稳定、可扩展的Jackett服务。接下来可以探索:
- 多实例部署:为不同地区的Tracker创建独立Jackett容器,通过 src/Jackett.Common/Utils/EnvironmentUtil.cs 中的环境变量区分配置
- 监控集成:使用Prometheus + Grafana监控容器资源使用,可参考 src/Jackett.Server/Controllers/AdminController.cs 中的API接口
- 自动化运维:结合CI/CD工具实现配置文件的版本控制和自动部署
Jackett作为媒体下载生态的重要组件,其价值不仅在于简化Tracker管理,更在于通过 src/Jackett.Common/Indexers/IIndexer.cs 定义的标准化接口,为开发者提供了扩展更多功能的可能。立即开始你的容器化之旅,享受高效便捷的资源管理体验吧!
提示:定期关注官方Docker镜像更新:https://hub.docker.com/r/linuxserver/jackett,获取最新特性和安全修复。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考