alist + qbittorrent + aria2 docker-compose 配置
踩坑记录
开始用了 alist-aria2 image ,发现没有qbittorrent ,然后自己找了个qbittorrent docker结果alist死活连不上,最后发现,alist容器里访问localhost只能访问本容器内的localhost,访问不到宿主机,也就不可能访问到qbittorrent服务的端口。最后把 alist-aria2 网络模式改成host模式解决。
然后发现 alist-aria2 docker 只能以PUID=0,PGID=0 运行时, 才能成功连接到内置的aria2服务,估计是权限问题,但是这样在docker外以非root身份访问修改时会有权限问题,最后自己一个一个搞吧。
另外不用 host 模式,内置的网络不行,但使用自己创建额外的网络好像也可行
# docker network create alist-net
networks:
alist-net:
driver: bridge # 使用桥接模式的网络驱动
external: true # 表明这个网络是外部创建的,不由这个 Docker Compose 文件管理
#alist中
networks:
- alist-net # 将此服务连接到 alist-net网络
运行前
修改 WEBUI_PASSWORD,RPC_SECRET 这两个是qbittorrent,aria2 的密码。
volumes,ports 自己看着办,自己完全明白可以改,./alist:/opt/alist/data这个是必须的,涉及到qbittorrent,aria2 下载缓存移动的问题。
PUID和PGID 可以自己输入id 查看,为了方便可以全设置成0,就是后面在docker外以非root身份访问时会有权限问题。
xxx@debian:~$ id
uid=1000(xxx) gid=1000(xxx) 组=1000(xxx),996(docker)
然后 docker-compose up -d 运行容器
完成后去 http://ip:5244/@manage/settings/other 设置aria2 和 qbittorrent
aria2 密钥就是 RPC_SECRET 设置的值
qbittorrent 是这个形式 http://admin:admin@localhost:8181/
docker-compose.ymal
包括 qbittorrent、alist、Aria2-Pro、AriaNg 四个,都可以在相应端口通过web访问
version: '3.5'
services:
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
# network_mode: 'host'
environment:
- PUID=1000
- PGID=996
- TZ=Asia/Shanghai
- WEBUI_PORT=8181 # 将外部端口更改为8181
- WEBUI_USERNAME=admin # 设置用户名
- WEBUI_PASSWORD=admin # 设置密码
volumes:
- ./qbittorrent/config:/config
- ./qbittorrent/downloads:/downloads
- ./alist:/opt/alist/data
ports:
- 8181:8181 # 映射到8181端口
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
alist:
image: xhofe/alist:latest
container_name: alist
network_mode: 'host'
environment:
- PUID=1000
- PGID=996
- UMASK=022
- QBittorrent_ADDRESS=qbittorrent # 使用qbittorrent容器的名称作为地址
- QBittorrent_PORT=8181 # 设置qbittorrent的端口
volumes:
- ./alist:/opt/alist/data
# ports:
# - 5244:5244
restart: always
Aria2-Pro:
container_name: aria2-pro
image: p3terx/aria2-pro
environment:
- PUID=1000
- PGID=996
- UMASK_SET=022
- RPC_SECRET=admin # 配置Aria2 的 RPC secret 密钥,它将被用于 Alist 和 AriaNg 连接 Aria2
- RPC_PORT=6800
- LISTEN_PORT=6888
- DISK_CACHE=64M
# - IPV6_MODE=true
- UPDATE_TRACKERS=true
# - CUSTOM_TRACKER_URL=
- TZ=Asia/Shanghai
volumes:
- ./aria2/config:/config
- ./aria2/downloads:/downloads # 在:号前配置你要在主机上保存下载文件的路径
- ./alist:/opt/alist/data
ports:
- "6800:6800"
- "6888:6888"
- "6888:6888/udp"
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 1m
# Aria2 的 Web UI
AriaNg:
container_name: ariang
image: p3terx/ariang
command: --port 6880 --ipv6
ports:
- "6880:6880"
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 1m