环境
ubuntu 20.04
1.安装docker
Ubuntu 安装Docker 运行Nginx-CSDN博客
2.安装docker-compose
Ubuntu 安装 docker-compose-CSDN博客
3.编写shell脚本
vim start.sh
#!/bin/bash
# 创建目录结构
rm -r /docker/aria2
mkdir -p /docker/aria2/data
mkdir -p /docker/aria2/config
# 进入目标目录
cd /docker/aria2
# 将内容写入 docker-compose.yml 文件
cat <<EOF > docker-compose.yml
services:
aria2:
image: p3terx/aria2-pro:latest
container_name: aria2
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- RPC_PORT=6800
- RPC_SECRET=abc
ports:
- "8111:6800" # WebSocket RPC 接口端口
volumes:
- /docker/aria2/data:/downloads # 持久化下载目录
- /docker/aria2/config:/config # 持久化配置文件目录
aria2-ui:
image: p3terx/ariang
container_name: aria2-ui
restart: unless-stopped
ports:
- "8110:6880" # 将 80 端口映射到宿主机,Web UI 访问地址
environment:
- TZ=Asia/Shanghai
EOF
# 启动 Docker Compose
docker compose up -d
4.启动shell脚本
sh start.sh
5.打开管理页面
主机ip:8110
aria2.conf文件:
#
# https://github.com/P3TERX/aria2.conf
# File name:aria2.conf
# Description: Awesome Aria2 configuration file
# Version: 2021.09.15
#
# Copyright (c) 2018-2021 P3TERX <https://p3terx.com>
#
# This is free software, licensed under the MIT License.
# See /LICENSE for more information.
#
## 文件保存设置 ##
# 下载目录。可使用绝对路径或相对路径, 默认: 当前启动位置
dir=/downloads
# 磁盘缓存, 0 为禁用缓存,默认:16M
# 磁盘缓存的作用是把下载的数据块临时存储在内存中,然后集中写入硬盘,以减少磁盘 I/O ,提升读写性能,延长硬盘寿命。
# 建议在有足够的内存空闲情况下适当增加,但不要超过剩余可用内存空间大小。
# 此项值仅决定上限,实际对内存的占用取决于网速(带宽)和设备性能等其它因素。
disk-cache=64M
# 文件预分配方式, 可选:none, prealloc, trunc, falloc, 默认:prealloc
# 预分配对于机械硬盘可有效降低磁盘碎片、提升磁盘读写性能、延长磁盘寿命。
# 机械硬盘使用 ext4(具有扩展支持),btrfs,xfs 或 NTFS(仅 MinGW 编译版本)等文件系统建议设置为 falloc
# 若无法下载,提示 fallocate failed.cause:Operation not supported 则说明不支持,请设置为 none
# prealloc 分配速度慢, trunc 无实际作用,不推荐使用。
# 固态硬盘不需要预分配,只建议设置为 none ,否则可能会导致双倍文件大小的数据写入,从而影响寿命。
file-allocation=falloc
# 文件预分配大小限制。小于此选项值大小的文件不预分配空间,单位 K 或 M,默认:5M
no-file-allocation-limit=64M
# 断点续传
continue=true
# 始终尝试断点续传,无法断点续传则终止下载,默认:true
always-resume=false
# 不支持断点续传的 URI 数值,当 always-resume=false 时生效。
# 达到这个数值从将头开始下载,值为 0 时所有 URI 不支持断点续传时才从头开始下载。
max-resume-failure-tries=0
# 获取服务器文件时间,默认:false
remote-time=true
## 进度保存设置 ##
# 从会话文件中读取下载任务
input-file=/config/aria2.session
# 会话文件保存路径
# Aria2 退出时或指定的时间间隔会保存`错误/未完成`的下载任务到会话文件
save-session=/config/aria2.session
# 任务状态改变后保存会话的间隔时间(秒), 0 为仅在进程正常退出时保存, 默认:0
# 为了及时保存任务状态、防止任务丢失,此项值只建议设置为 1
save-session-interval=1
# 自动保存任务进度到控制文件(*.aria2)的间隔时间(秒),0 为仅在进程正常退出时保存,默认:60
# 此项值也会间接影响从内存中把缓存的数据写入磁盘的频率
# 想降低磁盘 IOPS (每秒读写次数)则提高间隔时间
# 想在意外非正常退出时尽量保存更多的下载进度则降低间隔时间
# 非正常退出:进程崩溃、系统崩溃、SIGKILL 信号、设备断电等
auto-save-interval=20
# 强制保存,即使任务已完成也保存信息到会话文件, 默认:false
# 开启后会在任务完成后保留 .aria2 文件,文件被移除且任务存在的情况下重启后会重新下载。
# 关闭后已完成的任务列表会在重启后清空。
force-save=false
## 下载连接设置 ##
# 文件未找到重试次数,默认:0 (禁用)
# 重试时同时会记录重试次数,所以也需要设置 max-tries 这个选项
max-file-not-found=10
# 最大尝试次数,0 表示无限,默认:5
max-tries=0
# 重试等待时间(秒), 默认:0 (禁用)
retry-wait=10
# 连接超时时间(秒)。默认:60
connect-timeout=10
# 超时时间(秒)。默认:60
timeout=10
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# 单服务器最大连接线程数, 任务添加