
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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
bashhttps://hub.docker.com/r/80x86/qbittorrent
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
https://registry.hub.docker.com/_/alpine/ Docker image.start it using this command:
bash$ 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
https://github.com/docker/docker/pull/*** is fixed.
take cloudflare for example, your need add following env vars:
bash-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:
bash$ 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=your-email@example.com \ -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!
bash# ACME related env vars # acme check interval in hours, default to 24 hours GO_ACME_INTERVAL=24 # change CA server to `https://acme-staging-v02.api.letsencrypt.org/directory` if you want to test GO_ACME_CA_SERVER="" # set to http://IP:PORT 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=""
bashalidns,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: https://go-acme.github.io/lego/dns/#dns-providers
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:
bashhttps://acme-staging-v02.api.letsencrypt.org/directory
you can set it for your container by using env var
GO_ACME_CA_SERVER="https://acme-staging-v02.api.letsencrypt.org/directory"
use bridged network
shell# 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
shell# 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}
NanoDM migration: use bridged network
shellIMAGE_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}
NanoDM migration: use hosted network
shellIMAGE_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? https://github.com/ttys3/docker-qbittorrent/issues.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务