docker部署aria2-pro

前言

我平时有一些下载视频和一些资源文件的需求,有时候需要离线下载,也要速度比较快的方式

之前我是用家里的玩客云绝育之后不再写盘当下载机用的,但是限制很多

我发现了aria2 这个下载器非常适合我,而有个大佬又在原来的基础上进行了大量的配置等优化

发布了aria2-pro的项目,而且提供了docker部署

项目说明

    • BT 下载率高、速度快
    • 重启后不丢失任务进度、不重复下载
    • 删除正在下载的任务自动删除未完成的文件
    • 下载错误自动删除未完成的文件
    • 下载完成自动删除控制文件(.aria2后缀名文件)
    • 下载完成自动删除种子文件(.torrent后缀名文件)
    • 下载完成自动删除空目录
    • BT 下载完成自动清除垃圾文件(文件类型过滤功能)
    • BT 下载完成自动清除小文件(文件大小过滤功能)
    • 有一定的防版权投诉、防迅雷吸血效果
    • 更好的 PT 下载支持
  • 使用 Aria2 Pro Core 项目最新静态编译二进制文件

    • 多平台:amd64i386arm64armhf(VPS、群辉、树莓派等常见平台完美支持)
    • 全功能:Async DNSBitTorrentFirefox3 CookieGZipHTTPSMessage DigestMetalinkXML-RPCSFTP
    • 单服务器线程数最大值无上限(已破解线程数限制)
    • 防掉线程优化
    • 内存消耗优化
    • 读写性能优化
    • 最新依赖库,下载更安全、稳定、快速
    • 持续更新最新版本
  • 支持与 RCLONE 联动

    • 自动上传 OneDrive 、Google Drive 等网盘
    • 百度网盘转存到其它网盘
    • 多网盘自由选择
  • 支持新一代互联网协议 IPv6
  • 下载完成自动移动文件到指定目录(文件自动归档/分类)
  • 定时自动更新 BT tracker 列表(无感知、无重启),保持 BT 下载高速率
  • 用户文件权限自动配置功能
  • 配置文件持久化,支持使用 watchtower 更新容器。
  • 极简设计,专注下载,简单易用,少即是多。

项目地址

GitHub: https://github.com/P3TERX/docker-aria2-pro

Docker Hub: https://hub.docker.com/r/p3terx/aria2-pro

也希望多多支持作者提供了这么好的项目 ,给个stars

部署

1.首先安装docker(自行安装)

2.启动容器 

docker run -d \--name aria2-pro \--restart unless-stopped \--log-opt max-size=1m \-e PUID=$UID \-e PGID=$GID \-e UMASK_SET=022 \-e RPC_SECRET=chen \-e RPC_PORT=6800 \-p 6800:6800 \-e LISTEN_PORT=6888 \-p 6888:6888 \-p 6888:6888/udp \-v /data/aria2/config:/config \-v /data/aria2/downloads:/downloads \p3terx/aria2-pro
  • --name aria2-pro - 容器名称,可自定义以示区分。
  • --restart unless-stopped - 设置容器重启策略,详情参见 Docker 官方文档。
  • --log-driver json-file - 设置日志记录格式为 json 格式。这是 Docker 的默认值,某些特殊情况可能需要设置。
  • --log-opt max-size=1m - 日志大小限制为1MB,防止 Aria2 持续下载产生大量的日志占用磁盘空间。某些 GUI 可能没有相关选项。所以说有什么理由不用 CLI 一把梭?
  • --network host - 使用 host 网络模式。直接使用宿主机网络,免去端口映射导致的部分性能损失,且灵活性更高,可更方便的配置使用 IPv6 网络。host 网络模式仅适用于 Docker 17.06+ ,如果你的 Docker 版本低于此,请先升级。

    ⚠️ ma­cOS 和 Win­dows 上的 Docker 目前暂时无法使用 host 网络模式,依然需要进行端口映射。方法参见后面的  bridge 网络模式章节。

/data/aria2/config:/config  配置目录映射,配置文件持久化。左边为宿主机路径供自定义,不要有中文、不要混用配置文件,首次使用请确保目录为空。

TIPS: 注意确认目录是否存在、权限是否正确。

用于设置一些可能需要自定义的 Aria2 配置选项,方便一键部署。

TIPS: 以下环境变量定义后将直接写入配置文件( aria2.conf),通过变量定义后无法通过配置文件修改,因为每次容器重启会自动修正为环境变量定义的值。你也可以选择忽略它们,直接在容器创建后修改配置文件。
  • -e RPC_SECRET=<TOKEN> - RPC 密钥设置,即 WebUI 连接时需要填写的密码,只建议使用字母和数字。如果没有设置,配置文件中的默认密码为P3TERX
  • -e RPC_PORT=6800 - RPC 端口设置。
  • -e LISTEN_PORT=6888 - BT 监听端口(TCP)、DHT 监听端口(UDP)设置,即 Aria2 配置中listen-portdht-listen-port选项定义的端口。如果没有设置,配置文件中的默认值为6888
  • -e DISK_CACHE=<SIZE> - 磁盘缓存设置,默认值64M。建议在有足够的内存空闲情况下设置为适当增加大小,以减少磁盘 I/O ,提升读写性能,延长硬盘寿命。比如128M256M等。此项值仅决定上限,实际对内存的占用取决于网速(带宽)和设备性能等其它因素。当下载文件超过这个大小且网速足够快时最多会占用所设置大小的内存,所以不宜过大,设置不当轻则进程终结、重则宕机。
  • -e IPV6_MODE=true - 开启 IPv6 模式。此变量等同于设定配置文件中的选项disable-ipv6=falseenable-dht6=true。可间接提升 BT 下载速率,但需要网络完整支持 IPv6 ,否则会导致部分功能异常,甚至无法下载。

特殊模式环境变量

  • -e SPECIAL_MODE=move - 开启文件自动归档/分类功能,即在文件下载完成后把文件移动到指定目录。默认移动到下载目录下的completed子目录。有关详情在后面的进阶玩法章节。
  • -e SPECIAL_MODE=rclone - 开启 RCLONE 联动功能。首次启动容器会在容器内自动安装 RCLONE,且每次重启会自动更新。有关详情在后面的进阶玩法章节。

其它环境变量

  • -e UPDATE_TRACKERS=false - 禁用自动更新 BT tracker 。PT 下载和想手动填写设置 BT tracker 需求必须禁用。
  • -e CUSTOM_TRACKER_URL=<URL>:自定义 BT tracker 列表获取链接,多个链接可以用半角逗号(,)进行分隔。如果没有指定则默认从https://trackerslist.com/all_aria2.txt进行获取。
  • -e UMASK_SET=022 - umask 设置,默认值022。决定你下载下来的文件的权限,对权限不敏感或不理解直接填写000
  • -e TZ=<TIME_ZONE> - 时区设置,默认时区为Asia/Shanghai,若无特殊需求无需自定义。

bridge 网络模式

TIPS: ma­cOS 和 Win­dows 必须要使用 bridge 网络模式。

点击查看

bridge 网络模式下需要把容器内部的端口映射到宿主机,它是 Docker 默认的网络模式,所以很多 Docker 镜像的默认使用说明都包含端口映射的参数,也包括在 2020 年 3 月 28 日之前的本项目。bridge 网络模式主要是用于网络隔离,对于一般用户几乎无用,而且多了一层 NAT ,会有一定的网络性能损失。如果要使用 IPv6 网络还需要进行一些列复杂的设置。对于全新部署且没有特殊需求不会用到下面这些参数。

  • -p 6800:6800 - RPC 通讯端口映射。
  • -p 6888:6888 - BT 监听端口(TCP)映射,即 Aria2 配置中listen-port选项定义的端口。
  • -p 6888:6888/udp - DHT 监听端口(UDP)映射,即 Aria2 配置中dht-listen-port选项定义的端口。

bridge 网络模式启动命令示例:

docker run -d \--name aria2-pro \--restart unless-stopped \--log-opt max-size=1m \-e PUID=$UID \-e PGID=$GID \-e UMASK_SET=022 \-e RPC_SECRET=chen \-e RPC_PORT=6800 \-p 6800:6800 \-e LISTEN_PORT=6888 \-p 6888:6888 \-p 6888:6888/udp \-v /data/aria2/config:/config \-v /data/aria2/downloads:/downloads \p3terx/aria2-pro
TIPS: bridge 网络模式下如果需要自定义端口,建议映射到宿主机相同的端口,避免混淆和功能异常。

注意事项

  • 作者不会对使用此项目造成的损失承担任何责任,使用前请务必详细阅读整个文档再考虑是否使用。
  • 容器启动命令有关路径与端口参数中:(冒号)右边的值为容器内部的固定值(常识),不要去修改,否则可能导致无法正常工作。
  • Aria2 配置文件中某些没必要修改的选项参数和已通过环境变量设定的选项参数默认情况下修改无效,重启后会自动修复为正确的值。(为了防止错误修改后导致容器工作异常所做的自我修复功能,比如可以防止把容器内的路径改成容器外的路径之类的迷惑行为)
  • 由于 Aria2 暂时没有 UPnP 功能,所以必须配置防火墙开放监听端口,内网设备在路由器设置端口转发到相同端口,这对 BT 下载尤为重要,否则 Aria2 将无法与外界进行数据交换,影响下载率和速度。方法可参考内网端口转发设置章节。有关原理参见《Aria2 无法下载磁力链接、BT种子和速度慢的解决方案》。
  • 某些 NAS 系统比如 OpenMediaVault 由于挂载盘默认使用了noexec特征,如果配置文件目录映射到了挂载盘下可能会导致附加功能脚本没有执行权限,解决方法可参考《OpenMediaVault 使用中遇到的问题和解决方案 #1 - permission denied》。
  • 在中国大陆地区使用可能需要处理网络问题。已做针对性优化,但国情都懂的。

aria2-pro 解除了单服务器线程最大数量限制

Aria2 官方对单服务器线程数进行限制必然是有他们自己的考虑,但我个人认为自由软件就是要自由,所以解除了这个限制,让所有人可以自由选择。不过无脑的增加线程数并不会让下载速度飞起来,有时会起到反作用,甚至导致无限重启。合理的设置才是正道。

此外 Aria2 Pro 还有特殊的防掉线程优化以及增强配置选项,这是其他项目所不具备的,有关详情配置文件中有注释说明。

部署WebUI 

docker run -d \--name ariang \--log-opt max-size=1m \--restart unless-stopped \-p 6880:6880 \p3terx/ariang

访问 6880端口

在AriaNg 设置中 点最上方的RPC 设置Aria2 RPC密钥

在上面给出的启动aria2的镜像代码中我设置的 密钥token是chen

-e RPC_SECRET=chen

进阶玩法

Aria2 Pro 具有非常多的隐藏功能与玩法等待你去发觉,比如通过创建多个容器,你甚至可以在同一设备上同时进行 BT 下载、PT 下载、自动上传 OneDrive 、自动上传 Google Drive 等功能,但不仅限于这些。想象力没有上限,需要自己思考。授人以鱼不如授人以渔,所以只写大概思路与示例。

​​

重启

Aria2 Pro 具有自我修复机制,遇到问题首先重启。如果你修改过配置文件和附加功能脚本,先删除后重启。

docker restart aria2-pro

重装

docker rm -f aria2-pro
docker rmi p3terx/aria2-pro
rm -rf ~/aria2-config
docker pull p3terx/aria2-pro
docker run <...>

更新

也许你的问题在最新的版本中已经得到解决,多多关注项目页面动态。一些重要更新会在 Aria2 Channel 推送。

以下是使用 Watchtower 一键更新 Aria2 Pro 镜像与容器的命令示例:

docker run --rm \-v /var/run/docker.sock:/var/run/docker.sock \containrrr/watchtower -cR \aria2-pro

查看日志

查看日志才能更好的找到问题的根本,即使你看不懂,也要学会如何查看。

  • 查看实时日志
docker logs -f --tail 30 aria2-pro
  • 导出日志
docker logs aria2-pro > ~/aria2-pro.log

有些代码细节和WebUI作者博客文章中都没有写

我们根据Github作者提供的文档稍微整合了一下

文章参考:

Aria2 Pro - 更好用的 Aria2 Docker 容器镜像 - P3TERX ZONE

GitHub - P3TERX/Aria2-Pro-Docker: Aria2 Pro | A perfect Aria2 Docker image | 更好用的 Aria2 Docker 容器镜像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/270769.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php常见的45个漏洞及解决方案

[TOC]&#xff08;太多了&#xff0c;目录只列出最重要的几个&#xff0c;剩下的同学们自己翻&#xff09; PHP作为一种广泛应用的服务器端脚本语言&#xff0c;在历史上曾曝出过多种安全漏洞。以下是一些PHP漏洞的类别及其简要解释&#xff0c;以及如何解决这些问题&#xff1…

一次一对一服务引起的沉思和笑话(微信号Stefan)

前情提要 客户需求&#xff1a; 分析页面代码和接口请求协议和参数需求&#xff0c;将人工下载视频怎么获得最终的视频链接&#xff0c;这一逻辑清晰的展示并讲解清除。我询问了是否需要成品爬虫&#xff0c;他说代码他自己能搞定。 我给的价格选择&#xff1a; 第一种、首…

flowable的java class task,也叫服务任务

源码地址12级程序猿-新年正当红/flowable-ui和服务任务 启动flowable-ui-app 浏览器输入下面的地址 http://localhost:8080/flowable-ui/#/ 在服务任务这里设置java类的路径 com.dmg.flowabledemo.task.MyServiceTask 当请假任务完成之后&#xff0c;自动触发这个服务任务…

Java精品项目--第5期基于SpringBoot的高速收费系统的设计分析与实现

项目使用技术栈 SpringBootMavenShiroMySQLMybatis-PlusJavaJDK1.8HTML 系统介绍 项目截图

工商全程无纸化应用与CA认证结合方案

一、引言 随着互联网技术的飞速发展&#xff0c;政务服务正逐步向数字化、网络化、智能化转型。为响应国家关于推进“互联网政务服务”的号召&#xff0c;XX工商管理局致力于实现工商企业网上注册全程无纸化&#xff0c;提升政务服务的效率与质量。本方案旨在结合陕西CA认证中…

PowerBI怎么修改数据库密码

第一步&#xff1a;点击转换数据 第二步&#xff1a;点击数据源设置 第三步&#xff1a;点击编辑权限 第四步&#xff1a;点击编辑 第五步&#xff1a;输入正要修改的密码就可以了

半导体行业案例:Jira与龙智插件助力某半导体企业实现精益项目管理

近日&#xff0c;龙智Atlassian技术团队收到了国内一家大型半导体企业的感谢信。龙智团队提供的半导体行业项目管理解决方案和服务受到了客户的好评&#xff1a; 在龙智团队的支持下&#xff0c;我们的业务取得了喜人的成果和进步。龙智公司的专业服务和产品&#xff0c;是我们…

解密Lawnchair:打造个性化极致的Android桌面体验

解密Lawnchair&#xff1a;打造个性化极致的Android桌面体验 1. 简介 Lawnchair是一款知名的Android桌面定制工具&#xff0c;旨在为用户提供个性化极致的桌面体验。作为一个开源项目&#xff0c;Lawnchair融合了简洁、灵活和强大的特点&#xff0c;让用户能够自由定制其Andro…

1.5如何缓解图像分类任务中训练数据不足带来的问题?

1.5 图像数据不足时的处理方法 场景描述 在机器学习中&#xff0c;绝大部分模型都需要大量的数据进行训练和学习(包括有监督学习和无监督学习)&#xff0c;然而在实际应用中经常会遇到训练数据不足的问题。 比如图像分类&#xff0c;作为计算机视觉最基本的任务之一&#xff0…

必看——GlobalSign代码签名证书怎么申请?

一、GlobalSign代码签名证书申请流程 第一部分&#xff1a;选择适合的证书类型 1. 访问官方渠道&#xff1a; 首先访问JoySSL官方网站页面&#xff0c;浏览并了解不同类型的代码签名证书选项&#xff0c;包括但不限于标准代码签名证书、扩展验证&#xff08;EV&#xff09;代码…

AIOps常见问题

AIOps的自动化通常指什么&#xff1f; AIOps 平台的自动化一般包括以下几个方面&#xff1a; 数据收集和整合&#xff1a;AIOps 平台可以从多个 IT 基础架构组件、应用需求与性能监视工具以及服务工单系统等数据源中收集并整合运维数据&#xff0c;形成一个全面的数据平台。数…

设计模式之模版方法实践

模版方法实践案例 实践之前还是先了解一下模版方法的定义 定义 模板方法模式是一种行为设计模式&#xff0c;它定义了一个骨架&#xff0c;并允许子类在不改变结构的情况下重写的特定步骤。模板方法模式通过在父类中定义一个模板方法&#xff0c;其中包含了主要步骤&#xf…

1、MQ_介绍、优缺点、类型等

MQ介绍 1. MQ概述 MQ&#xff08;Message Queue&#xff09;&#xff1a;消息队列&#xff0c;是基础数据结构中FIFO&#xff08;first in first out&#xff09;的一种数据结构。一般用来解决流量削峰、应用解耦、异步处理等问题&#xff0c;实现高性能&#xff0c;高可用&a…

Salesforce 2024财年爆发式增长!第一次现金分红

对于Salesforce来说&#xff0c;这是非凡的转型之年&#xff0c;所有的关键指标都表现强劲&#xff0c;现金流和利润增长创下了纪录。截至第四季度末&#xff0c;Salesforce的剩余履约价值&#xff08;RPO&#xff09;总额为569亿美元&#xff0c;同比增长17%。 Marc Benioff …

H5小游戏,斗地主

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的,私信本人,发演示地址,可以后再订阅,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、开心消消乐、扑鱼达人、飞机大战等等 <!DOCTYPE html> <html> <…

使用DockerFile构建Tomcat镜像

1、准备镜像文件tomcat压缩包&#xff0c;jdk的压缩包 tomcat链接&#xff1a;https://pan.baidu.com/s/1Xpecb-BSGR2sdxSL7FDtBw?pwd1234 提取码&#xff1a;1234 jdk链接&#xff1a;https://pan.baidu.com/s/1mQHInn27j1I9uuuicBsyAA?pwd1234 提取码&#xff1a;1234 …

vue3 + vite 项目可以使用纯Js开发吗?

答案&#xff1a;可以 创建项目&#xff1a; 按照链接参考或者按官方&#xff1a; webstorm 创建vue3 vite 项目-CSDN博客 项目目录 tsconfig.json 配置允许js allowJs指定是否编译js文件&#xff0c;在任意文件当中,如果我们模块使用js写的&#xff0c;那么我们需要 将all…

Spring——Bean的作用域

bean的作用域 Bean Scope Scope说明singleton&#xff08;默认情况下&#xff09;为每个Spring IoC容器将单个Bean定义的Scope扩大到单个对象实例。prototype将单个Bean定义的Scope扩大到任何数量的对象实例。session将单个Bean定义的Scope扩大到一个HTTP Session 的生命周期…

MySQl基础入门③

上一遍内容 接下来我们都使用navicat软件来操作数据了。 1.新建数据库 先创建我门自己的一个数据库 鼠标右键点击bendi那个绿色海豚的图标&#xff0c;然后选择新建数据库。 数据库名按自己喜好的填&#xff0c;不要写中文&#xff0c; 在 MySQL 8.0 中&#xff0c;最优的字…