如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
。这些参数用冒号分隔,表示外部:内部。例如,-p 8080:80会将容器内的80端口暴露出来,通过主机IP的8080端口访问。
| 参数 | 功能 |
|---|---|
-p 443 | Https端口 |
-p 80 | Http端口(仅http验证需要) |
-e PUID=1000 | 用户ID - 详见下方说明 |
-e PGID=1000 | 组ID - 详见下方说明 |
-e TZ=Europe/London | 指定时区,如Europe/London |
-e URL=yourdomain.url | 您拥有控制权的顶级域名(如拥有customdomain.com,或动态DNS的customsubdomain.ddnsprovider.com) |
-e SUBDOMAINS=www, | 证书覆盖的子域名(逗号分隔,无空格),如www,ftp,cloud。如需通配符证书,需将此参数精确设置为wildcard(仅dns和duckdns验证支持通配符证书) |
-e VALIDATION=http | Let's Encrypt验证方法,可选http、tls-sni、dns或duckdns(dns方法需设置DNSPLUGIN变量;duckdns方法需设置DUCKDNSTOKEN变量,且SUBDOMAINS变量需为空或设为wildcard) |
-e DNSPLUGIN=cloudflare | 当VALIDATION设为dns时必填。可选值:cloudflare、cloudxns、digitalocean、dnsimple、dnsmadeeasy、google、luadns、nsone、ovh、rfc2136和route53。需将凭据填入/config/dns-conf下对应的ini文件 |
-e DUCKDNSTOKEN=token | 当VALIDATION设为duckdns时必填。从[***] |
-e EMAIL=e-mail | 可选,用于证书过期通知的电子邮件地址 |
-e DHLEVEL=2048 | Dhparams位值(默认2048,可设为1024或4096) |
-e ONLY_SUBDOMAINS=false | 如仅需为特定子域名获取证书(主域名可能托管在其他机器无法验证),设为true |
-e EXTRA_DOMAINS=extradomains | 额外的完全限定域名(逗号分隔,无空格),如extradomain.com,subdomain.anotherdomain.org |
-e STAGING=false | 设为true可在测试模式下获取证书。速率限制更高,但生成的证书无法通过浏览器安全测试,仅用于测试 |
-v /config | 所有配置文件(包括webroot)存放位置 |
使用卷(-v标志)时,主机OS和容器之间可能出现权限问题。通过指定用户PUID和组PGID可避免此问题。
确保主机上的任何卷目录都由您指定的相同用户拥有,权限问题将迎刃而解。
此处PUID=1000和PGID=1000,可通过id user命令查找您的ID:
$ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
http验证,路由器互联网侧的80端口应转发到容器的80端口。tls-sni验证,路由器互联网侧的443端口应转发到容器的443端口。dns验证,确保将凭据填入/config/dns-conf下对应的ini文件。
duckdns验证,SUBDOMAINS变量需为空或设为wildcard,并将DUCKDNSTOKEN变量设为您的duckdns token。由于duckdns限制,生成的证书仅覆盖主域名(如yoursubdomain.duckdns.org)或子子域名(如*.yoursubdomain.duckdns.org),无法同时覆盖。可使用https://hub.docker.com/r/linuxserver/duckdns/%E6%9B%B4%E6%96%B0duckdns.org%E4%B8%8A%E7%9A%84IP%E3%80%82--cap-add=NET_ADMIN是fail2ban修改iptables所必需的。URL为yoursubdomain.duckdns.org,SUBDOMAINS可设为www,ftp,cloud(http验证)或wildcard(dns验证)。https://yourdomain.url访问默认主页(默认禁用80端口的http访问,可编辑/config/nginx/site-confs/default启用)。/config/log/letsencrypt下的日志了解续期失败原因。建议在Docker参数中输入电子邮件,以便接收Let's Encrypt的过期通知。docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd username。.htpasswd添加多个用户密码。添加第一个用户时使用上述命令,添加其他用户时去掉-c标志(-c会强制删除现有.htpasswd并创建新文件)。/config/nginx/site-confs/default。可修改此文件,也可向该目录添加其他conf文件。但删除default文件后,容器启动时会创建新的默认文件。/config/nginx/proxy_confs下的README.md了解启用方法。预设配置文件来自https://github.com/linuxserver/reverse-proxy-confs%E5%B9%B6%E4%BC%9A%E5%AF%BC%E5%85%A5%E3%80%82add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";。这会请求Google等搜索引擎不索引和列出您的站点。注意:若在希望被搜索的站点保留此行,最终会被下架。-v /path-to-le-config:/le-ssl),在其他容器中使用证书路径/le-ssl/keys/letsencrypt/。/config下的etc/letsencrypt文件夹挂载到其他容器(如-v /path-to-le-config/etc/letsencrypt:/le-ssl),在其他容器中使用证书路径/le-ssl/live/your.domain.url/(此方法更安全,因为第一种方法会与其他容器共享整个letsencrypt配置文件夹,包括www文件,而第二种方法仅共享ssl证书)。cert.pem、chain.pem、fullchain.pem和privkey.pem:由Let's Encrypt生成,供nginx和其他应用使用。privkey.pfx:Microsoft支持的格式,常用于Emby Server等dotnet应用(无密码)。priv-fullchain-bundle.pem:捆绑私钥和fullchain的pem证书,供Znc等应用使用。/config/fail2ban/jail.local文件。.conf文件,而是创建同名的.local文件并编辑,因为.conf文件在操作和过滤器更新时会被覆盖。.local文件会附加.conf文件的内容(如nginx-http-auth.conf --> nginx-http-auth.local)。docker exec -it letsencrypt fail2ban-client status查看活动jail。docker exec -it letsencrypt fail2ban-client status jail name查看特定jail状态。docker exec -it letsencrypt fail2ban-client set jail name unbanip IP解封IP。docker exec -it letsencrypt /bin/bashdocker logs -f letsencryptdocker inspect -f '{{ index .Config.Labels "build_version" }}' letsencryptdocker inspect -f '{{ index .Config.Labels "build_version" }}' linuxserver/letsencrypt我们的大多数镜像是静态、版本化的,需要更新镜像并重新创建容器以更新内部应用。除部分例外(如nextcloud、plex),不建议或支持在容器内更新应用。请参考上述应用设置部分了解是否推荐更新镜像。
以下是更新容器的说明:
docker pull linuxserver/letsencryptdocker stop letsencryptdocker rm letsencrypt/config文件夹和设置将保留)docker start letsencryptdocker image prunedocker-compose pull
docker-compose pull letsencryptdocker-compose up -d
docker-compose up -d letsencryptdocker image prunedocker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once letsencrypt
注意: 我们不认可使用Watchtower作为现有Docker容器的自动更新解决方案。事实上,我们通常不鼓励自动更新。但对于忘记原始参数的容器,这是一个有用的一次性手动更新工具。长期来看,强烈建议使用Docker Compose。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





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