
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Varnish Docker镜像是基于Varnish缓存服务器的容器化部署包。Varnish是一款高性能的HTTP反向代理缓存服务器,通过缓存频繁访问的Web内容,显著提升内容交付速度,降低后端服务器负载。
主要用途:
如需基于源码自定义构建Varnish镜像,执行以下命令:
bashdocker build -t varnish .
说明:默认情况下可直接使用官方或预构建的Varnish镜像,无需手动构建。
4.2.1 使用自定义VCL配置
挂载本地自定义VCL文件(default.vcl)运行容器:
bashdocker run -it --rm \ -u "$(id -u)" \ # 指定运行用户ID,避免权限问题 -p 8080:8080 \ # 端口映射(宿主机端口:容器内端口,容器内默认HTTP端口通过VARNISH_HTTP_PORT配置) -v /path/to/default.vcl:/etc/varnish/default.vcl \ # 挂载自定义VCL文件 -e VARNISH_MEM="2G" \ # 配置缓存内存大小为2G varnish
4.2.2 使用默认VCL配置
未提供自定义VCL时,容器自动生成默认配置,通过环境变量控制缓存策略:
bashdocker run -it --rm \ -p 80:80 \ # 映射默认HTTP端口(容器内默认80,通过VARNISH_HTTP_PORT修改) -e VARNISH_MEM="1G" \ # 缓存内存1G -e VARNISH_DEFAULT_TTL="3600s" \ # 默认缓存时间1小时 -e VARNISH_BACKEND_IP="192.168.1.100" \ # 后端服务IP -e VARNISH_BACKEND_PORT="8080" \ # 后端服务端口 -e VARNISH_CACHE_COOKIES=1 \ # 缓存含Cookie的请求,并将Cookie纳入哈希 varnish
创建docker-compose.yml文件,配置Varnish服务:
yamlversion: '3' services: varnish: image: varnish ports: - "80:80" # 宿主机80端口映射到容器HTTP端口 volumes: - ./default.vcl:/etc/varnish/default.vcl # 挂载自定义VCL(可选) environment: - VARNISH_MEM="2G" # 缓存内存大小 - VARNISH_HTTP_PORT="80" # 容器内HTTP服务端口 - VARNISH_DEFAULT_TTL="3600s" # 默认TTL(仅默认VCL生效) - VARNISH_BACKEND_IP="backend-service" # 后端服务名称/IP(需与后端服务网络互通) - VARNISH_BACKEND_PORT="8080" # 后端服务端口(仅默认VCL生效) depends_on: - backend-service # 依赖后端服务(需确保后端服务先启动) backend-service: image: your-backend-image # 后端应用镜像 ports: - "8080:8080"
以下环境变量对自定义VCL和默认VCL均生效:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
FILE_DEFAULT_VCL | /etc/varnish/default.vcl | Varnish配置文件路径,自定义VCL需挂载到此路径 |
VARNISH_MEM | 1G | 缓存内存大小,支持单位(如512M、2G) |
VARNISH_VSL_MASK_HASH | 空 | 非空时启用哈希日志记录(添加-p vsl_mask=+Hash参数启动varnishd) |
VARNISH_HTTP_PORT | 80 | 容器内Varnish HTTP服务监听端口 |
当未挂载自定义default.vcl时,容器通过以下环境变量生成默认VCL配置,变量未设置则不生效:
| 环境变量 | 说明 |
|---|---|
VARNISH_CACHE_COOKIES | 缓存含Cookie的请求,并将Cookie值纳入哈希(影响缓存键唯一性) |
VARNISH_IGNORE_COOKIES | 缓存含Cookie的请求,但忽略Cookie值(所有含Cookie请求共享同一缓存) |
VARNISH_CACHE_AUTH | 缓存含Authorization头的请求,并将Authorization值纳入哈希 |
VARNISH_IGNORE_AUTH | 缓存含Authorization头的请求,但忽略Authorization值 |
VARNISH_DEFAULT_TTL | 对象默认缓存时间(如3600s) |
VARNISH_BACKEND_IP | 后端服务IP地址(必填,默认VCL需指定后端) |
VARNISH_BACKEND_PORT | 后端服务端口(默认80) |
default.vcl后,5.2节中的默认VCL生成环境变量均不生效,需在VCL文件中手动定义缓存策略。VARNISH_CACHE_AUTH会缓存含Authorization头的请求,可能导致后端已失效的Authorization仍可访问缓存内容。VARNISH_IGNORE_AUTH会忽略Authorization值,可能导致不同用户共享同一缓存内容,存在权限安全风险。varnishd -C -f default.vcl本地校验。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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