
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
acme-companion 是 https://github.com/nginx-proxy/nginx-proxy 的轻量级配套容器,通过ACME协议处理代理Docker容器的SSL证书自动创建、续期和使用,简化HTTPS配置流程。
http-01 挑战进行Let's Encrypt/ACME域名验证http-01挑战失败)HTTPS_METHOD=nohttp配置!https://github.com/nginx-proxy/acme-companion/blob/main/schema.png
nginx-proxy容器需声明三个可写卷,以便与acme-companion共享:
/etc/nginx/certs:存储证书和私钥(nginx-proxy容器为只读)/etc/nginx/vhost.d:修改虚拟主机配置(CA需访问http-01挑战文件)/usr/share/nginx/html:写入http-01挑战文件acme-companion容器需额外声明一个卷:/etc/acme.sh,用于存储acme.sh配置和状态。
启动nginx-proxy容器并声明所需卷:
shell$ docker run --detach \ --name nginx-proxy \ --publish 80:80 \ --publish 443:443 \ --volume certs:/etc/nginx/certs \ --volume vhost:/etc/nginx/vhost.d \ --volume html:/usr/share/nginx/html \ --volume /var/run/docker.sock:/tmp/docker.sock:ro \ nginxproxy/nginx-proxy
注:必须将主机的Docker socket(
/var/run/docker.sock)挂载到容器内的/tmp/docker.sock,这是nginx-proxy的必要配置。
通过--volumes-from继承nginx-proxy的卷,并启动acme-companion:
shell$ docker run --detach \ --name nginx-proxy-acme \ --volumes-from nginx-proxy \ --volume /var/run/docker.sock:/var/run/docker.sock:ro \ --volume acme:/etc/acme.sh \ --env "DEFAULT_EMAIL=mail@yourdomain.tld" \ nginxproxy/acme-companion
注:
- 需将主机Docker socket挂载到容器内的
/var/run/docker.sock- 建议通过
DEFAULT_EMAIL环境变量提供有效***,Let's Encrypt会通过该***发送证书过期提醒及账户恢复信息
当nginx-proxy和acme-companion容器运行后,启动需代理的容器时,需设置以下环境变量:
VIRTUAL_HOST:控制nginx-proxy的代理配置LETSENCRYPT_HOST:控制acme-companion的证书创建和SSL启用证书仅会为同时设置了VIRTUAL_HOST和LETSENCRYPT_HOST,且域名正确解析到主机的容器颁发。
基本示例:
shell$ docker run --detach \ --name your-proxied-app \ --env "VIRTUAL_HOST=subdomain.yourdomain.tld" \ --env "LETSENCRYPT_HOST=subdomain.yourdomain.tld" \ nginx
非默认端口示例(如Grafana,默认暴露3000端口):
shell$ docker run --detach \ --name grafana \ --env "VIRTUAL_HOST=othersubdomain.yourdomain.tld" \ --env "VIRTUAL_PORT=3000" # 指定容器暴露的端口 --env "LETSENCRYPT_HOST=othersubdomain.yourdomain.tld" \ --env "LETSENCRYPT_EMAIL=mail@yourdomain.tld" # 可覆盖DEFAULT_EMAIL grafana/grafana
注:被代理容器必须暴露需代理的端口,可通过Dockerfile的
EXPOSE指令或docker run的--expose参数实现。
更多详细文档请参考 https://github.com/nginx-proxy/acme-companion/tree/main/docs%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务