本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
注意: 这是 varnish官方镜像 的 arm32v7 架构构建的"按架构"仓库——更多信息请参见官方镜像文档中的 "非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是一款HTTP加速器,专为内容密集型动态网站和API设计。与其他Web加速器(如最初作为客户端缓存的***,或主要作为源服务器的Apache和nginx)不同,Varnish从设计之初就是一款HTTP加速器。Varnish专注于HTTP协议,而其他代理服务器通常支持FTP、SMTP等网络协议。
***.org/wiki/Varnish_(software))
!logo
VARNISH_BACKEND_HOST和VARNISH_BACKEND_PORT只需指定后端服务器(Varnish要加速的服务器)的地址:
# 定义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 \ arm32v7/varnish
之后,可通过浏览器访问localhost:8080查看example.com的主页。
如果已有VCL配置文件,可直接将其挂载为/etc/varnish/default.vcl:
# 需将配置文件挂载到/etc/varnish/default.vcl,工作目录挂载为tmpfs,使用8080端口访问容器(内部监听80端口) $ docker run \ -v /path/to/default.vcl:/etc/varnish/default.vcl:ro \ --tmpfs /var/lib/varnish/varnishd:exec \ -p 8080:80 \ arm32v7/varnish
或者,可通过简单的Dockerfile生成包含VCL文件的新镜像:
FROM arm32v7/varnish COPY default.vcl /etc/varnish/
将此文件与default.vcl放在同一目录,运行docker build -t my-varnish .构建镜像,然后启动容器:
$ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 my-varnish
所有镜像均包含varnishreload工具,可在不重启容器(从而不丢失缓存)的情况下更新运行中的配置。基本用法如下:
# 更新容器中的default.vcl docker cp new_default.vcl running_container:/etc/varnish/default.vcl # 运行varnishreload docker exec running_container varnishreload
注意,varnishreload还支持重载其他文件(不限于default.vcl)、标签(l)、旧标签垃圾回收(-m)等功能。如需了解更多,运行:
docker run varnish varnishreload -h
默认情况下,容器使用100MB缓存大小,通常偏小,可通过VARNISH_SIZE环境变量调整:
$ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G arm32v7/varnish
Varnish默认在80端口监听HTTP流量,可通过VARNISH_HTTP_PORT环境变量覆盖。类似地,VARNISH_PROXY_PORT变量(默认8443)指定PROXY协议的监听端口,该协议主要用于与hitch交互(hitch默认也使用8443端口)。
# 让Varnish监听7777端口而非80端口 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:7777 -e VARNISH_HTTP_PORT=7777 arm32v7/varnish
默认Varnish配置文件为/etc/varnish/default.vcl,可通过VARNISH_VCL_FILE环境变量覆盖。这有助于创建可使用不同内置配置部署的单一镜像。
此外,可在docker run命令中arm32v7/varnish之后添加参数。若首个参数以-开头,所有参数将追加到默认命令:
# 延长默认保持时间 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G arm32v7/varnish -p default_keep=300
若arm32v7/varnish之后的首个参数不以-开头,则会被解释为覆盖默认命令:
# 显示命令行选项 $ docker run arm32v7/varnish varnishd -? # 列出可与-p一起使用的参数 $ docker run arm32v7/varnish varnishd -x parameter # 使用自定义参数运行服务器(不要忘记-F以避免后台运行) $ docker run arm32v7/varnish varnishd -F -a :8080 -b 127.0.0.1:8181 -t 600 -p feature=+http2
如前所述,可使用vmod_dynamic进行后端解析。镜像还包含varnish-modules集合。有关使用和语法的所有文档可在仓库的src/目录中找到。
此外,镜像包含install-vmod helper脚本,可在创建自定义镜像时快速下载、编译和安装vmod模块。注意,镜像设置了ENV变量VMOD_DEPS以简化操作。
FROM arm32v7/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
FROM arm32v7/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
arm32v7/varnish镜像有多种变体,适用于不同场景。
arm32v7/varnish:<version>这是默认镜像。若不确定需求,建议使用此变体。它既可用作临时容器(挂载源代码并启动容器运行应用),也可用作构建其他镜像的基础。
arm32v7/varnish:<version>-alpine此镜像基于流行的Alpine Linux项目,来自alpine官方镜像。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此生成的镜像通常更精简。
当最终镜像大小是首要考虑因素时,此变体非常有用。需要注意的是,它使用musl libc而非glibc及相关库,因此软件可能因libc需求或假设的差异而遇到问题。有关可能出现的问题及使用Alpine镜像的优缺点比较,参见this Hacker News comment thread。
为最小化镜像大小,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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429