
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
警告!自签名证书仅应在本地项目中使用!
self-signed-certificate-nginx-proxy-companion 是 https://github.com/jwilder/nginx-proxy 的轻量级辅助容器。它允许自动创建自签名证书。
如果需要为生产环境设置 Let's Encrypt 证书,请参见:https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion%E3%80%82
适用于本地开发和测试环境,需要快速配置HTTPS但无需受信任的第三方证书的场景。请勿在生产环境中使用。
与原始 https://github.com/jwilder/nginx-proxy 容器配合使用时,必须声明两个卷:
/var/run/docker.sock(只读):用于访问Docker套接字/etc/nginx/certs(可写):用于创建自签名证书使用 docker run 命令
bash$ docker run -d -p 80:80 -p 443:443 \ --name nginx-proxy \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ -v /path/to/certs:/etc/nginx/certs:ro \ -v /etc/nginx/vhost.d \ jwilder/nginx-proxy
bash$ docker run -d \ --name proxy-companion \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /path/to/certs:/etc/nginx/certs:rw \ sebastienheyd/self-signed-proxy-companion
SELF_SIGNED_HOST:bash$ docker run -d \ --name example-app \ -e "VIRTUAL_HOST=example.com.localhost,www.example.com.localhost,mail.example.com.localhost" \ -e "SELF_SIGNED_HOST=example.com.localhost" \ tutum/apache-php
注意:在此示例中,SELF_SIGNED_HOST 的值 example.com.localhost 将覆盖 *.example.com.localhost,无需添加所有完全限定域名(FQDN)。参见 https://github.com/jwilder/nginx-proxy#wildcard-certificates 文档。
使用 docker-compose
首先启动带有两个卷声明的 nginx 和辅助容器:
ymlversion: '2' services: proxy: container_name: proxy restart: always image: jwilder/nginx-proxy ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - ./vhost.d:/etc/nginx/vhost.d - ./certs:/etc/nginx/certs networks: - proxy proxy-companion: container_name: proxy-companion restart: always image: sebastienheyd/self-signed-proxy-companion volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./certs:/etc/nginx/certs networks: proxy: external: true
然后启动任何需要代理的容器,并添加环境变量 SELF_SIGNED_HOST:
ymlversion: '2' services: app: container_name: example-app image: tutum/apache-php:latest environment: VIRTUAL_HOST: "example.com.localhost,www.example.com.localhost,mail.example.com.localhost" SELF_SIGNED_HOST: "example.com.localhost" networks: - proxy networks: proxy: external: true
注意:在此示例中,SELF_SIGNED_HOST 的值 example.com.localhost 将覆盖 *.example.com.localhost,无需添加所有完全限定域名(FQDN)。参见 https://github.com/jwilder/nginx-proxy#wildcard-certificates 文档。
| 变量 | 默认值 | 描述 |
|---|---|---|
| NGINX_PROXY_CONTAINER | proxy | nginx-proxy 容器名称 |
| EXPIRATION | 3650 | 证书有效期(天) |
| DOCKER_HOST | unix:///var/run/docker.sock | 当前容器中 Docker 套接字的路径 |
这将避免浏览器显示“您的连接不是私密连接”警告。
首次启动辅助容器时,会生成 CA 证书。在 certs 文件夹中可找到 ca.crt,即 CA 证书。
以下是两种常见浏览器的 CA 证书导入方法:
chrome://settings/certificatesca.crtabout:config#privacyca.crt您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务