Всем хорошего настроения!)
Хочу запусть qBittorrent в виде контейнера на Docker, имеяя при этом хост с Proxmox 7. 90% прошёл, но есть проблема( Описание проблемы в самом низу, для начала опишу свой путь.
Поставил Docker внутри непривилегированного LXC-контейнера на хосте с Proxmox. Шаблон для контейнера - ubuntu 22.04
Привожу на всякий случай конфигурацию этого LXC-контейнера
arch: amd64
cores: 2
features: fuse=1,keyctl=1,mknod=1,nesting=1
hostname: qBitTorrent
memory: 2048
mp0: mpool:subvol-103-disk-1,mp=/mpool,backup=1,size=50G
nameserver: 1.1.1.1 1.0.0.1
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.1.1,hwaddr=92:DB:70:AE:F5:D9,ip=192.168.1.221/24,type=veth
ostype: ubuntu
rootfs: local-zfs:basevol-102-disk-0/subvol-103-disk-0,size=8G
swap: 512
unprivileged: 1
Внутри контейнера добавил Fuse-overlay. Информация об утановленном Docker:
root@qBitTorrent:/# docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Docker Buildx (Docker Inc., v0.9.1-docker)
scan: Docker Scan (Docker Inc., v0.17.0)
Server:
Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 2
Server Version: 20.10.18
Storage Driver: fuse-overlayfs
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
cgroupns
Kernel Version: 5.15.53-1-pve
Operating System: Ubuntu 22.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 2GiB
Name: qBitTorrent
ID: V6U6:PFWF:ZO6Q:ETXX:6J3Z:QWYF:QEJM:JOM3:LJG6:EKF2:KZ4O:MK3D
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Далее внутри это LXC-контейнера установил контейнер с Рortainer. Затем через Stack в Рortainer установил контейнер с qBitTorrent со следующей конфигурацией:
version: "2"
services:
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=0
- PGID=0
- TZ=Europe/Amsterdam
- WEBUI_PORT=8080
volumes:
- /portainer/qbittorrent:/config
- /mpool/downloads:/media
ports:
- 8080:8080
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
network_mode: "bridge"
ИТАК, в чём проблема?
qBittorrent запускается, работает, но скачивает файлы не в ту папку, которую я ему указал в конфигурации /mpool/downloads
, а внутрь системного диска(((
А именно - в папку /var/lib/docker/fuse-overlayfs/3c093fbd88990f06f6de228e0228ddd2d384d3ac8967ceb608d433801f1e09b6/diff/downloads/
Хранилище в этом LXC-контейнере устроено следующим образом
- основное хранилище (для ОС) - 8Гб
(rootfs: local-zfs:basevol-102-disk-0/subvol-103-disk-0,size=8G
)
- у дополнительно к нему через Mount point подмонтируется в виде папки
/mpool
volume group с хоста mpool (физически это отдельный HDD)
mp0: mpool:subvol-103-disk-1,mp=/mpool,backup=1,size=50G
На него и должны скачиваться файлы в дирректорию /mpool/downloads
.
Соответсвенно, при загрузке через торрент большого файла (более 7Гб) место на системном диске внутри LXC-контенера заканчивается и всё ломается.
Как это победить?
P.S. Журнал qBittorrent - вроде ошибок нет (qBittorrent временно запускается под root, чтобы исключить ошибки связанные с правами доступа):
-------------------------------------
GID/UID
-------------------------------------
User uid: 0
User gid: 0
-------------------------------------
[custom-init] No custom files found, skipping...
******** Information ********
To control qBittorrent, access the WebUI at: http://localhost:8080
[ls.io-init] done.