Varnish 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) 资助开发。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429