varnish Docker 镜像下载 - 轩辕镜像
varnish 镜像详细信息和使用指南
varnish 镜像标签列表和版本信息
varnish 镜像拉取命令和加速下载
varnish 镜像使用说明和配置指南
Docker 镜像加速服务 - 轩辕镜像平台
国内开发者首选的 Docker 镜像加速平台
极速拉取 Docker 镜像服务
相关 Docker 镜像推荐
热门 Docker 镜像下载
varnish 镜像详细信息
varnish 镜像标签列表
varnish 镜像使用说明
varnish 镜像拉取命令
Docker 镜像加速服务
轩辕镜像平台优势
镜像下载指南
相关 Docker 镜像推荐
varnish 镜像详细说明
varnish 使用指南
varnish 配置说明
varnish 官方文档
注意: 这是varnish镜像的arm64v8构建的“每个架构”仓库——更多信息,请参见镜像文档中的“除amd64之外的架构?”以及***镜像FAQ中的“Git中的镜像源已更改,现在该怎么办?”。
快速参考
-
维护者:
Varnish Docker社区 -
获取帮助的途径:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
支持的标签及对应的Dockerfile链接
-
fresh,8.0.0,8,8.0,latest -
fresh-alpine,8.0.0-alpine,8-alpine,8.0-alpine,alpine -
old,7.7.3,7.7 -
old-alpine,7.7.3-alpine,7.7-alpine -
stable,6.0.16,6.0
快速参考(续)
-
问题提交地址:
[***] -
支持的架构: (更多信息)
amd64、arm32v7、arm64v8、i386、ppc64le、s390x -
已发布镜像制品详情:
repo-info仓库的repos/varnish/目录(历史记录)
(镜像元数据、传输大小等) -
镜像更新:
official-images仓库的library/varnish标签
official-images仓库的library/varnish文件(历史记录) -
本描述的来源:
docs仓库的varnish/目录(历史记录)
什么是Varnish?
Varnish是一款HTTP加速器,专为内容密集型动态网站和API设计。与其他Web加速器(如Squid,最初作为客户端缓存;或Apache和nginx,主要作为源服务器)不同,Varnish从设计之初就是一款HTTP加速器。Varnish专门专注于HTTP,而不像其他代理服务器通常支持FTP、SMTP等网络协议。
***.org/wiki/Varnish_(software))
!logo
如何使用本镜像
基本用法
使用VARNISH_BACKEND_HOST和VARNISH_BACKEND_PORT
只需知道后端服务器(Varnish将要加速的服务器)的地址:
console# 定义VARNISH_BACKEND_HOST/VARNISH_BACKEND_PORT环境变量 # 工作目录需挂载为tmpfs以避免磁盘I/O # 使用8080端口与容器通信(容器内部监听80端口) $ docker run \ -e VARNISH_BACKEND_HOST=example.com -e VARNISH_BACKEND_PORT=80 \ --tmpfs /var/lib/varnish/varnishd:exec \ -p 8080:80 \ arm64v8/varnish
之后,可在浏览器中访问localhost:8080查看example.com的首页。
使用VCL文件
如果已有VCL配置文件,可直接将其挂载为/etc/varnish/default.vcl:
console# 需将配置文件挂载到/etc/varnish/default.vcl # 工作目录需挂载为tmpfs以避免磁盘I/O # 使用8080端口与容器通信(容器内部监听80端口) $ docker run \ -v /path/to/default.vcl:/etc/varnish/default.vcl:ro \ --tmpfs /var/lib/varnish/varnishd:exec \ -p 8080:80 \ arm64v8/varnish
或者,可通过简单的Dockerfile生成包含必要default.vcl的新镜像:
dockerfileFROM arm64v8/varnish COPY default.vcl /etc/varnish/
将此文件与default.vcl放在同一目录,运行docker build -t my-varnish .构建镜像,然后启动容器:
console$ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 my-varnish
重新加载配置
所有镜像均包含varnishreload工具,可轻松更新运行中的配置而无需重启容器(从而避免丢失缓存)。最基本的用法如下:
console# 更新容器中的default.vcl文件 docker cp new_default.vcl running_container:/etc/varnish/default.vcl # 运行varnishreload docker exec running_container varnishreload
注意,varnishreload还支持重新加载其他文件(不一定是default.vcl)、标签(l)以及旧标签的垃圾回收(-m)等功能。要了解更多,运行:
consoledocker run varnish varnishreload -h
额外配置
缓存大小(VARNISH_SIZE)
默认情况下,容器使用100MB的缓存大小,通常偏小,可通过VARNISH_SIZE环境变量快速设置:
console$ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G arm64v8/varnish
监听端口(VARNISH_HTTP_PORT/VARNISH_PROXY_PORT)
Varnish默认在80端口监听HTTP流量,可通过VARNISH_HTTP_PORT环境变量覆盖。类似地,VARNISH_PROXY_PORT变量(默认8443)指定PROXY协议的监听端口,该协议主要用于与hitch交互(巧合的是,hitch也默认使用8443端口)。
console# 指示Varnish监听7777端口而非80端口 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:7777 -e VARNISH_HTTP_PORT=7777 arm64v8/varnish
VCL文件路径
默认Varnish配置文件为/etc/varnish/default.vcl,可通过VARNISH_VCL_FILE环境变量覆盖。这有助于创建可使用不同内置配置部署的单个镜像。
额外参数
此外,可在docker run命令中arm64v8/varnish之后添加参数。如果第一个参数以-开头,整个参数列表将附加到默认命令:
console# 延长默认保持时间 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G arm64v8/varnish -p default_keep=300
如果arm64v8/varnish之后的第一个参数不以-开头,将被解释为覆盖默认命令:
console# 显示命令行选项 $ docker run arm64v8/varnish varnishd -? # 列出可与-p一起使用的参数 $ docker run arm64v8/varnish varnishd -x parameter # 使用自定义参数运行服务器(不要忘记-F以避免后台运行) $ docker run arm64v8/varnish varnishd -F -a :8080 -b 127.0.0.1:8181 -t 600 -p feature=+http2
vmod模块(7.1及以上版本)
如上所述,可使用vmod_dynamic进行后端解析。镜像还包含varnish-modules集合。有关使用和语法的所有文档,可在该仓库的src/目录中找到。
此外,镜像包含install-vmod helper脚本,可在创建自定义镜像时快速下载、编译和安装vmod模块。注意,镜像设置了ENV变量VMOD_DEPS以进一步简化操作。
Debian
dockerfileFROM arm64v8/varnish:7.1 # 切换到root用户并安装构建依赖 USER root RUN set -e; \ apt-get update; \ apt-get -y install $VMOD_DEPS /pkgs/*.deb; \ \ # 安装一个或多个vmod模块 install-vmod [***] \ \ # 清理并切换回varnish用户 apt-get -y purge --auto-remove $VMOD_DEPS varnish-dev; \ rm -rf /var/lib/apt/lists/* USER varnish
Alpine
dockerfileFROM arm64v8/varnish:7.1-alpine # 安装构建依赖 USER root RUN set -e; \ apk add --no-cache $VMOD_DEPS; \ \ # 安装一个或多个vmod模块 install-vmod [***] \ \ # 清理 apk del --no-network $VMOD_DEPS USER varnish
镜像变体
arm64v8/varnish镜像有多种变体,每种针对特定用例设计。
arm64v8/varnish:<version>
这是默认镜像。如果不确定需求,通常应使用此变体。它既可作为临时容器(挂载源代码并启动容器以运行应用),也可作为构建其他镜像的基础。
arm64v8/varnish:<version>-alpine
此镜像基于流行的Alpine Linux项目,可在alpine***镜像中找到。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此通常生成更精简的镜像。
当最终镜像大小尽可能小是主要关注点时,此变体非常有用。需要注意的是,它使用musl libc而非glibc及相关库,因此软件可能因对libc的依赖或假设深度不同而遇到问题。有关可能出现的问题及使用Alpine基础镜像的优缺点比较,可参见此Hacker News评论线程。
为最小化镜像大小,Alpine基础镜像中通常不包含额外相关工具(如git或bash)。以此镜像为基础,可在自己的Dockerfile中添加所需工具(如不熟悉如何安装包,参见alpine镜像描述中的示例)。
许可
查看本镜像所包含软件的许可信息。
与所有Docker镜像一样,这些镜像可能还包含其他软件,可能采用其他许可(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖)。
部分能够自动检测到的额外许可信息,可在repo-info仓库的varnish/目录中找到。
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用均符合其中包含的所有软件的相关许可。
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务
常见问题
免费版仅支持 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
在 Linux 系统配置镜像加速服务
Windows/Mac
在 Docker Desktop 配置镜像加速
Docker Compose
Docker Compose 项目配置加速
K8s Containerd
Kubernetes 集群配置 Containerd
宝塔面板
在宝塔面板一键配置镜像加速
群晖
Synology 群晖 NAS 配置加速
飞牛
飞牛 fnOS 系统配置镜像加速
极空间
极空间 NAS 系统配置加速服务
爱快路由
爱快 iKuai 路由系统配置加速
绿联
绿联 NAS 系统配置镜像加速
威联通
QNAP 威联通 NAS 配置加速
Podman
Podman 容器引擎配置加速
Singularity/Apptainer
HPC 科学计算容器配置加速
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
专属域名拉取
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429
