本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Varnish Docker镜像是基于Varnish缓存服务器的容器化部署包。Varnish是一款高性能的HTTP反向代理缓存服务器,通过缓存频繁访问的Web内容,显著提升内容交付速度,降低后端服务器负载。
主要用途:
如需基于源码自定义构建Varnish镜像,执行以下命令:
docker build -t varnish .
说明:默认情况下可直接使用官方或预构建的Varnish镜像,无需手动构建。
挂载本地自定义VCL文件(default.vcl)运行容器:
docker 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
未提供自定义VCL时,容器自动生成默认配置,通过环境变量控制缓存策略:
docker 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服务:
version: '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本地校验。免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429