eeacms/varnishVarnish Docker 镜像是一个支持动态后端、Rancher DNS 集成、自动配置与重载的通用缓存服务镜像。该镜像基于轻量级 Alpine 系统构建,可广泛应用于各类 Web 服务的性能优化场景,不仅限于 EEA(欧洲环境署)相关项目。
基础信息:
dynamic.director 实现 Rancher 环境下的 DNS 动态解析/varnish-config 卷管理只读 VCL 模板文件:7 Dockerfile(Alpine 3.19,Varnish 7.6.1)| 标签 | Varnish 版本 | 发布版本 | Dockerfile 链接 |
|---|---|---|---|
:4.1-6.5 | 4.1.11 | 6.5 | 链接 |
:7.2-1.0 | 7.2 | 1.0 | 链接 |
:7.4-1.1 | 7.4.2 | 1.1 | 链接 |
:7.5-1.0 | 7.5.0 | 1.0 | 链接 |
:7.6-1.0 | 7.6.1 | 1.0 | 链接 |
查看旧版本
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) 资助开发。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务