
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
letsencrypt-nginx-proxy-companion-multi是https://github.com/jwilder/nginx-proxy%E7%9A%84%E8%BD%BB%E9%87%8F%E9%85%8D%E5%A5%97%E5%AE%B9%E5%99%A8%EF%BC%8C%E5%8F%AF%E8%87%AA%E5%8A%A8%E5%88%9B%E5%BB%BA%E3%80%81%E7%BB%AD%E6%9C%9FLet's Encrypt证书,支持多域名(SAN)证书及强Diffie-Hellman组生成,帮助用户快速为代理服务配置HTTPS。
注意:首次启动容器时会生成新的Diffie-Hellman组文件,此过程可能需要数分钟,请耐心等待。
适用于需要为多个域名自动配置HTTPS的Web服务部署场景,尤其是基于nginx-proxy的反向代理架构,可简化证书管理流程。
基础使用
需从nginx-proxy容器声明3个可写卷:
/etc/nginx/certs:用于创建/续期证书;/etc/nginx/vhost.d:修改虚拟主机配置;/usr/share/nginx/html:写入挑战文件。步骤示例:
bashdocker run -d -p 80:80 -p 443:443 \ --name nginx-proxy \ -v /path/to/certs:/etc/nginx/certs:ro \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy \ docker.xuanyuan.run/jwilder/nginx-proxy
(标签com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy用于让letsencrypt容器识别nginx-proxy)
bashdocker run -d \ -v /path/to/certs:/etc/nginx/certs:rw \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --volumes-from nginx-proxy \ docker.xuanyuan.run/jrcs/letsencrypt-nginx-proxy-companion
bashdocker run -d -e "VIRTUAL_HOST=foo.bar.com" ...
分离容器部署(推荐)
将nginx-proxy拆分为docker-gen和nginx两个容器,提升安全性(避免将Docker socket挂载到公开暴露的容器)。
步骤示例:
bashcurl https://raw.githubusercontent.com/jwilder/nginx-proxy/master/nginx.tmpl > /path/to/nginx.tmpl
bashdocker run -d -p 80:80 -p 443:443 \ --name docker.xuanyuan.run/nginx \ -v /etc/nginx/conf.d \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /path/to/certs:/etc/nginx/certs:ro \ --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy \ docker.xuanyuan.run/nginx
bashdocker run -d \ --name nginx-gen \ --volumes-from nginx \ -v /path/to/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ --label com.github.jrcs.letsencrypt_nginx_proxy_companion.docker_gen \ docker.xuanyuan.run/jwilder/docker-gen \ -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
bashdocker run -d \ --name nginx-letsencrypt \ --volumes-from nginx \ -v /path/to/certs:/etc/nginx/certs:rw \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ docker.xuanyuan.run/jrcs/letsencrypt-nginx-proxy-companion
Let's Encrypt配置
为需代理的应用容器设置以下环境变量启用证书自动生成:
LETSENCRYPT_HOST:需与VIRTUAL_HOST一致(多域名用逗号分隔);LETSENCRYPT_EMAIL:用于接收证书相关通知。可选变量:
LETSENCRYPT_KEYSIZE:证书密钥大小(默认4096位);LETSENCRYPT_TEST:设为true使用测试证书(无每周域名证书数量限制)。多域名证书示例:
bashdocker run -d \ --name example-app \ -e "VIRTUAL_HOST=example.com,www.example.com,mail.example.com" \ -e "LETSENCRYPT_HOST=example.com,www.example.com,mail.example.com" \ -e "LETSENCRYPT_EMAIL=foo@bar.com" \ docker.xuanyuan.run/tutum/apache-php
强制续期证书:
bashdocker exec nginx-letsencrypt /app/force_renew
可选环境变量
ACME_CA_URI:ACME API端点(默认生产环境,测试环境为https://acme-staging.api.letsencrypt.org/directory);DEBUG:设为true启用调试模式;REUSE_ACCOUNT_KEYS:设为false禁用ACME账户密钥复用;REUSE_KEY:设为true复用证书私钥(适合HPKP)。
===FULL_DESC===您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务