omv 家用 nas 搭建[2], qbitttorrent 部署
1. 部署背景
由于吸血驴,某雷的私有 bt 协议存在,同时由于政策原因,国内国外的 bt 资源网站管理也越来越严格,使得 bt 下载愈加难以为继。
目前大致只有两种下载模式,其一是 pt 资源站,使用专有 pt 协议进行下载;其二是使用百度云等云存储服务商提供的下载资源。
pt 资源,国内通常使用的下载软件为 qBittorrent,BitTorrent,uTorrent 等,国外除了国内下载软件外,部分用户使用 Deluge 。qBittorrent 作为老牌 pt 下载软件,在稳定性上已经经过了一段时间的考验,同时其出色的 ui 以及丰富的参数设置,也吸引了一批坚定的使用者。
2. 部署过程
部署过程主要参考油管 DB Tech 相关视频。
2.1 下载 docker image
由于国内网络性能的原因,从 docker hub 拉取镜像时可能会出现下载缓慢的现象。因此笔者的建议是先将 docker image 下载缓存在本地后再进行 docker-compose 的部署。
此次使用的是 linuxserver 组织编写的 dockerfile 镜像,linuxserver 组织编写的 nas 相关的项目配置相对简单,种类也较全。
从 docker hub 网站
复制命令
docker pull linuxserver/qbittorrent
,使用 ssh 连接终端,复制命令并运行,等待镜像下载完成。下载后执行
docker image list
,应该会看到相应镜像。
2.2 编辑 docker-compose
打开 portainer,选择侧边栏 stacks ,点击 add stack 按钮即可创建 portainer stack。
portainer stack 使用的是 docker-compose 格式的部署脚本,需要从 docker hub 中的 qbittorrent 文档 复制并且加以修改。文档中代码如下:
---
version: "2.1"
services:
qbittorrent:
image: ghcr.io/linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- WEBUI_PORT=8080
volumes:
- /path/to/appdata/config:/config
- /path/to/downloads:/downloads
ports:
- 6881:6881
- 6881:6881/udp
- 8080:8080
restart: unless-stopped
需要修改的地方有以下几个:
2.2.1 修改 PUID,PGID
根据 linuxserver 文档 所述,使用PUID和PGID,可以将容器的内部用户映射到宿主机上的用户,这样能够避免 root 权限配置及容器映射卷内的文件管理问题。
使用 ssh 连接至 omv 终端后,输入
id admin
命令获取当前 PUID 以及 PGID,如下图所示,此时的 PUID = 998,PGID = 100。
2.2.2 修改 TZ
根据当前时区位置修改为
TZ=Asia/Shanghai
2.2.3 修改磁盘映射
docker 会将宿主机的文件路径映射为容器中的文件路径。在 docker-compose 中,例如
/path/to/appdata/config:/config
冒号前的则为宿主机路径,冒号后的为映射的路径。
首先在 omv 中通过添加共享文件夹来创建宿主机的目的文件夹,如下图所示:
在添加时,设备指的是共享文件夹存储对应的硬盘,路径则是共享文件夹在硬盘上存储的相对位置。
创建成功后,在页面上显示的绝对路径即为所要的宿主机路径,如下图所示:
2.2.4 修改端口
当 docker 不为
host
模式时,容器与宿主机间将会进行一层类似 NAT 转换,从而减少不同容器间的端口冲突。而 qbittorrent 中需要开启 tcp,udp,web 三个端口。根据文档所述,由于 CSRF 和端口映射的问题,如果需要更改 webui 的端口,则需要更改端口,并将 WEBUI_PORT 环境变量的值设置为新端口的值。例如,要将端口设置为 8090,需要同时设置 8090:8090和 WEBUI_PORT = 8090。
而 tcp,udp 端口的值建议尽量不做更改。
2.2.5 修改总结
经过上述调整,修改后的 docker-compose 大致如以下所示:
---
version: "2.1"
services:
qbittorrent:
image: ghcr.io/linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=998
- PGID=100
- TZ=Asia/Shanghai
- WEBUI_PORT=9001
volumes:
- /srv/dev-disk-by-uuid-760db5aa-db10-48eb-bc2e-06fcf98b2c8f/software/qbittorrent/config:/config