本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

nova has been renamed to full ( full means has builtin python3 support for qb torrent search engine)the old version tag name with
novameans has python3 support (for qb torrent search engine), now it isfull
| tag | description |
|---|---|
4.6.0-39-minimal-amd64-full | based on fedora minimal image, builtin Python |
4.6.0-39-minimal-amd64 | based on fedora minimal image, no Python |
!80x86/qbittorrent pull stats
[***]
qBittorrent NoX is the headless with remote web interface version of qBittorrent BitTorrent client.
*20231028: update to qb 4.6.0
20200325: new version qb 4.2.2, default https, automatic HTTPS support via ACME added
20191219: new version qb 4.2.1
20191209: new version qb 4.2.0 (with new tag: 4.2.0 , not latest)
auto category feature added, for old container, you can setup "Run external program on torrent completion" to /usr/local/bin/qb-auto-cat -h %I in qb WEB UI
20191115: rollback to qb 4.1.9 due to version number problem (some PT only allow qb 4.X.X version)
20191113: upgraded to qb 4.1.9.1
20190829: fixup js memory leak in log tab
not working torrent to special tag 0xDEADBEEFthis container is SSL default but you can change to http in the WEB UI.
you need to remove the cookie named SID in your browser
after the protocol changed.
no latest tag !!! use specific tag please
the examples below uses 4.4.2-amd64 as the tag,
in the real world, you should always check and use the newest available tag
do not just copy and paste the sample commands below
you need to modify the commands for your needs!
change tag from xxx-amd64 to xxx-arm64 if you are on a aarch64/arm64 machine
| container | description |
|---|---|
| /config | dir to save qBittorrent configuration files |
| /data | dir to save qBittorrent data (include BT_backup directory which stored torrents) |
| /downloads | qBittorrent default download location |
| name | default value | description |
|---|---|---|
| PUID | 1000 | run as uid |
| PGID | 100 | run as gid |
| UMASK_SET | 000 | umask for app running user |
| WEB_PORT | 8080 | http or https listen port |
| BT_PORT | 8999 | BT listen port (both tcp and udp) |
| QBT_GEOIP_DB_URL | URL for downloading GeoLite2-Country.mmdb.gz | |
| FB_AUTH_SERVER_ADDR | 127.0.0.1 | dashboard IP, for auto authenticate with dashboard |
| config file/dir | container | description |
|---|---|---|
| qBittorrent.conf | /config/qBittorrent.conf | config file |
| qBittorrent-data.conf | /config/qBittorrent-data.conf | stats data file |
| ssl.crt | /config/ssl.crt | SSL certificate |
| ssl.key | /config/ssl.key | SSL private key |
| rss/feeds.json | /config/rss/feeds.json | RSS feeds |
| BT_backup | /data/BT_backup | .torrent and .fastresume files goes here |
| GeoLite2-Country.mmdb | /data/GeoIP/GeoLite2-Country.mmdb | |
| *.py | /data/nova3/engines/ | nova3 search engine plugins |
/data/rss/articles/ | RSS articles data | |
| qbittorrent.log | /data/logs/qbittorrent.log | log file |
This image is:
:latest is based on official
Alpine Docker image.start it using this command:
$ WEB_PORT=8082 $ BT_PORT=8999 $ mkdir -p config data downloads $ podman run -d --name qbittorrent \ -e PUID=$UID \ -e PGID=$GID \ -e WEB_PORT=8082 \ -e BT_PORT=8999 \ --restart=always \ -p $WEB_PORT:$WEB_PORT -p $BT_PORT:$BT_PORT/tcp -p $BT_PORT:$BT_PORT/udp \ -v $PWD/config:/config \ -v $PWD/data:/data \ -v $PWD/downloads:/downloads \ 80x86/qbittorrent:4.2.2-amd64
... to run as yourself and have WebUI running on
https://localhost:8082 (username: admin,
password: adminadmin) with config in the following locations mounted:
/config: qBittorrent configuration files/data: qBittorrent data directory(include BT_backup directory
which stored torrents)/downloads: Download locationNote: By default it runs as UID 2048 and GID 2048, but can run as any user/group.
It is probably a good idea to add --restart=always so the container
restarts if it goes down.
You can change 8999 to some random port number (also change in the
settings).
Note: For the container to run, the legal notice had to be
automatically accepted. By running the container, you are accepting its
terms. Toggle the flag in qBittorrent.conf to display the notice
again.
Note: 2048 was chosen randomly to prevent running as root or as
another known user on your system; at least until
issue #11253 is fixed.
take cloudflare for example, your need add following env vars:
-e AUTOCERT_EMAIL=your-email-for-acme \ -e AUTOCERT_DOMAIN=you-domain.com \ -e AUTOCERT_DNS_PROVIDER=cloudflare \ -e CF_DNS_API_TOKEN="your-cf-token-here" \
an full example:
$ WEB_PORT=8082 $ BT_PORT=8999 $ mkdir -p config data downloads $ podman run -d --name qbittorrent \ -e PUID=$UID \ -e PGID=$GID \ -e WEB_PORT=8082 \ -e BT_PORT=8999 \ -e AUTOCERT_EMAIL=*** \ -e AUTOCERT_DOMAIN=you-domain.com \ -e AUTOCERT_DNS_PROVIDER=cloudflare \ -e CF_DNS_API_TOKEN="your-cf-token-here" \ --restart=always \ -p $WEB_PORT:$WEB_PORT -p $BT_PORT:$BT_PORT/tcp -p $BT_PORT:$BT_PORT/udp \ -v $PWD/config:/config \ -v $PWD/data:/data \ -v $PWD/downloads:/downloads \ 80x86/qbittorrent:4.2.2-amd64
attenion: change
$PWD/config... to your own path, DO NOT copy and paste!
# ACME related env vars # acme check interval in hours, default to 24 hours GO_ACME_INTERVAL=24 # change CA server to `[***]` if you want to test GO_ACME_CA_SERVER="" # set to [***] if you want to use http proxy for ACME HTTP_PROXY="" AUTOCERT_EMAIL="" # ACME domain like `foo.com`, can be multi like `foo.com,b.bar.com`, can be wildcard like `*.foo.com` AUTOCERT_DOMAIN="" # must be one of `RSA2048`, `RSA4096`, `RSA8192`, `EC256`, `EC384` AUTOCERT_KEYTYPE=EC256 # ACME DNS provider, default is cloudflare AUTOCERT_DNS_PROVIDER=cloudflare # this env var is only used by `cloudflare` DNS provider CF_DNS_API_TOKEN=""
alidns,azure,cloudflare,cloudxns,digitalocean,dnspod,gcloud,linodev4,namecheap,qcloud,rfc2136,vultr
cloudflare:
get token from "My Profile -> API Tokens" API token must include the following permissions:
Zone.Zone: ReadZone.DNS: EditZone Resources: All zones
| Environment Variable Name | description |
|---|---|
| CF_DNS_API_TOKEN | API Token |
dnspod:
| Environment Variable Name | description |
|---|---|
| DNSPOD_API_KEY | format is: id,token |
qcloud:
| Environment Variable Name | description |
|---|---|
| QCLOUD_SECRET_ID | The SecretId |
| QCLOUD_SECRET_KEY | The SecretKey |
alidns:
| Environment Variable Name | description |
|---|---|
| ALICLOUD_ACCESS_KEY | Access key ID |
| ALICLOUD_SECRET_KEY | Access Key secret |
for other provider please ref to: <[***]>
To test or experiment with your configuration,
make sure you change the ACME endpoint to a staging or development URL,
otherwise you are likely to hit rate limits which can block your access to HTTPS for up to a week,
depending on which rate limit you hit.
the default CA is Let's Encrypt, which has a staging endpoint that is not subject to the same rate limits:
[***]
you can set it for your container by using env var
GO_ACME_CA_SERVER="[***]"
# begin config WEB_PORT=http listen port DOWNLOAD_PATH="download dir" BT_PORT=bt incoming port CFG_PATH="config dir" DATA_PATH="data dir" RUN_USER="qbittorrent" # end config IMAGE_NAME=80x86/qbittorrent:4.2.2-amd64 QBT_AUTH_SERVER_ADDR=$(ip -4 addr show docker0 | grep inet | awk '{print $2}' | cut -d'/' -f1) podman run -d --name qbittorrent \ -e PUID=$(id -u $RUN_USER) \ -e PGID=$(id -g $RUN_USER) \ -e WEB_PORT=$WEB_PORT \ -e BT_PORT=$BT_PORT \ -e QBT_AUTH_SERVER_ADDR=$QBT_AUTH_SERVER_ADDR \ --restart unless-stopped \ -p $WEB_PORT:$WEB_PORT -p $BT_PORT:$BT_PORT/tcp -p $BT_PORT:$BT_PORT/udp \ -v "$CFG_PATH":/config \ -v "$DATA_PATH":/data \ -v "$DOWNLOAD_PATH":/downloads \ --mount type=tmpfs,destination=/tmp \ ${IMAGE_NAME}
use hosted network
# begin config WEB_PORT=http listen port DOWNLOAD_PATH="download dir" BT_PORT=bt incoming port CFG_PATH="config dir" DATA_PATH="data dir" RUN_USER="qbittorrent" # end config IMAGE_NAME=80x86/qbittorrent:4.2.2-amd64 QBT_AUTH_SERVER_ADDR="127.0.0.1" podman run -d --name qbittorrent \ -e PUID=$(id -u $RUN_USER) \ -e PGID=$(id -g $RUN_USER) \ -e WEB_PORT=$WEB_PORT \ -e BT_PORT=$BT_PORT \ -e QBT_AUTH_SERVER_ADDR=$QBT_AUTH_SERVER_ADDR \ --restart unless-stopped \ --network host \ -v "$CFG_PATH":/config \ -v "$DATA_PATH":/data \ -v "$DOWNLOAD_PATH":/downloads \ --mount type=tmpfs,destination=/tmp \ ${IMAGE_NAME}
IMAGE_NAME=80x86/qbittorrent:4.2.2-arm64 WEB_PORT=$(nvram get app.qb.listen_port) DOWNLOAD_PATH=$(cat /var/lib/qbittorrent/.config/qBittorrent/qBittorrent.conf | grep -i 'Downloads\\SavePath' | cut -d'=' -f2) BT_PORT=$(cat /var/lib/qbittorrent/.config/qBittorrent/qBittorrent.conf | grep -i 'Connection\\PortRangeMin' | cut -d'=' -f2) QBT_AUTH_SERVER_ADDR=$(ip -4 addr show docker0 | grep inet | awk '{print $2}' | cut -d'/' -f1) if [ "$DOWNLOAD_PATH" = "/downloads" ] || [ "$DOWNLOAD_PATH" = "/downloads/" ]; then echo "please set correct DOWNLOAD_PATH" exit -1 fi podman run -d --name qbittorrent \ -e PUID=$(id -u qbittorrent) \ -e PGID=$(cat /etc/group | grep -e '^users' | cut -d':' -f3) \ -e WEB_PORT=$WEB_PORT \ -e BT_PORT=$BT_PORT \ -e QBT_AUTH_SERVER_ADDR=$QBT_AUTH_SERVER_ADDR \ --restart unless-stopped \ -p $WEB_PORT:$WEB_PORT -p $BT_PORT:$BT_PORT/tcp -p $BT_PORT:$BT_PORT/udp \ -v /var/lib/qbittorrent/.config/qBittorrent:/config \ -v /var/lib/qbittorrent/.local/share/data/qBittorrent:/data \ -v "$DOWNLOAD_PATH":/downloads \ --mount type=tmpfs,destination=/tmp \ ${IMAGE_NAME}
IMAGE_NAME=80x86/qbittorrent:4.2.2-arm64 WEB_PORT=$(nvram get app.qb.listen_port) DOWNLOAD_PATH=$(cat /var/lib/qbittorrent/.config/qBittorrent/qBittorrent.conf | grep -i 'Downloads\\SavePath' | cut -d'=' -f2) BT_PORT=$(cat /var/lib/qbittorrent/.config/qBittorrent/qBittorrent.conf | grep -i 'Connection\\PortRangeMin' | cut -d'=' -f2) QBT_AUTH_SERVER_ADDR="127.0.0.1" if [ "$DOWNLOAD_PATH" = "/downloads" ] || [ "$DOWNLOAD_PATH" = "/downloads/" ]; then echo "please set correct DOWNLOAD_PATH" exit -1 fi podman run -d --name qbittorrent \ -e PUID=$(id -u qbittorrent) \ -e PGID=$(cat /etc/group | grep -e '^users' | cut -d':' -f3) \ -e WEB_PORT=$WEB_PORT \ -e BT_PORT=$BT_PORT \ -e QBT_AUTH_SERVER_ADDR=$QBT_AUTH_SERVER_ADDR \ --restart unless-stopped \ --network host \ -v /var/lib/qbittorrent/.config/qBittorrent:/config \ -v /var/lib/qbittorrent/.local/share/data/qBittorrent:/data \ -v "$DOWNLOAD_PATH":/downloads \ --mount type=tmpfs,destination=/tmp \ ${IMAGE_NAME}
80x86/qbittorrent:<version>Those are tagged versions built from source code.
based on Alpine Linux
Having more issues? Report a bug on GitHub.



免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429