如果你使用 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 镜像是一个支持动态后端、Rancher DNS 集成、自动配置与重载的通用缓存服务镜像。该镜像基于轻量级 Alpine 系统构建,可广泛应用于各类 Web 服务的性能优化场景,不仅限于 EEA(欧洲环境署)相关项目。
基础信息:
dynamic.director 实现 Rancher 环境下的 DNS 动态解析/varnish-config 卷管理只读 VCL 模板文件:7 https://github.com/eea/eea.docker.varnish/blob/7.x/Dockerfile%EF%BC%88Alpine 3.19,Varnish 7.6.1)| 标签 | Varnish 版本 | 发布版本 | Dockerfile 链接 |
|---|---|---|---|
:4.1-6.5 | 4.1.11 | 6.5 | https://github.com/eea/eea.docker.varnish/tree/4.1-6.5/varnish/Dockerfile |
:7.2-1.0 | 7.2 | 1.0 | https://github.com/eea/eea.docker.varnish/tree/7.2-1.0/Dockerfile |
:7.4-1.1 | 7.4.2 | 1.1 | https://github.com/eea/eea.docker.varnish/tree/7.4-1.1/Dockerfile |
:7.5-1.0 | 7.5.0 | 1.0 | https://github.com/eea/eea.docker.varnish/tree/7.5-1.0/Dockerfile |
:7.6-1.0 | 7.6.1 | 1.0 | https://github.com/eea/eea.docker.varnish/tree/7.5-1.0/Dockerfile |
查看https://github.com/eea/eea.docker.varnish/releases
docker pull eeacms/varnish| 变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
VARNISH_HTTP_PORT | Varnish 监听的 HTTP 端口 | 80 | 8080 |
VARNISH_HTTPS_PORT | Varnish 监听的 HTTPS 端口 | 8443 | 8444 |
VARNISH_SIZE | 缓存大小(支持单位:M/G) | 1G | 512M |
AUTOKILL_CRON | 容器重建定时任务(UTC 时区,Linux crontab 格式),用于定期刷新配置 | 无 | 0 2 * * *(每日2点) |
VARNISH_CFG_CONTENT | 多行变量,内容将直接写入 /etc/varnish/default.vcl 文件 | 仅包含 VCL 版本 | 完整 VCL 配置内容 |
VARNISH_CFG_CONTENT 注入配置直接通过环境变量传递 VCL 配置内容,适用于简单配置场景。示例 docker-compose.yml:
yamlversion: '3' services: varnish: image: eeacms/varnish:7 ports: - "80:80" environment: - VARNISH_SIZE=2G - VARNISH_CFG_CONTENT='vcl 4.1; backend default { .host = "webserver"; .port = "80"; }' depends_on: - webserver webserver: image: nginx:alpine
启动:docker-compose up -d
默认 default.vcl 仅包含 VCL 版本声明。如需自定义基础配置,可通过 Dockerfile 扩展镜像:
dockerfileFROM eeacms/varnish:7 COPY varnish.vcl /etc/varnish/default.vcl
构建自定义镜像:docker build -t my-varnish /path/to/dockerfile-dir
步骤:
VARNISH_ 为前缀的环境变量(如 VARNISH_BACKEND_HOST)ENV VARNISH_BACKEND_HOST=webserver)<变量名> 占位:
vclbackend default { .host = "<VARNISH_BACKEND_HOST>"; .port = "<VARNISH_BACKEND_PORT>"; }
-e 覆盖默认值:docker run -e VARNISH_BACKEND_HOST=api-server eeacms/varnish通过 /varnish-config 只读卷挂载 VCL 模板文件,容器启动时会将该目录下的文件(保持目录结构)复制到 /etc/varnish 并进行变量替换:
bashdocker run -v /local/vcl-templates:/varnish-config:ro eeacms/varnish
使用 dynamic.director 实现 Rancher DNS 动态解析,自动发现后端容器 IP:
vclvcl 4.1; import dynamic; sub vcl_init { # 动态后端配置:端口、DNS TTL(秒) new cluster = dynamic.director(port = "<VARNISH_BACKEND_PORT>", ttl = <VARNISH_DNS_TTL>); # 添加后端服务域名(Rancher 服务名) cluster.add_backend("web-service"); } sub vcl_recv { set req.backend_hint = cluster.backend(); }
环境变量配置:-e VARNISH_BACKEND_PORT=80 -e VARNISH_DNS_TTL=60
docker run 示例bashdocker run -d \ --name varnish \ -p 80:80 \ -e VARNISH_SIZE=512M \ -e VARNISH_CFG_CONTENT='vcl 4.1; backend default { .host="nginx"; .port="80"; }' \ --link nginx:nginx \ eeacms/varnish:7
拉取最新镜像并重建容器:
bashdocker pull eeacms/varnish:7 docker stop varnish && docker rm varnish # 重新运行容器(使用原配置参数)
原始代码的初始所有者为欧洲环境署(EEA),保留所有权利。
原始代码为自由软件,可根据 GNU 通用公共许可证(GPL)第 2 版或更高版本的条款重新分发和/或修改。
由 欧洲环境署(EU) 资助开发。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



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