注意: 这是***varnish镜像的ppc64le架构版本库——更多信息,请参见镜像文档中的“非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
镜像 artifact 详情:
repo-info 仓库的repos/varnish/目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的library/varnish标签
official-images 仓库的library/varnish文件 (历史记录)
本描述的来源:
docs 仓库的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 \ ppc64le/varnish
之后,可在浏览器中访问localhost:8080查看example.com的主页。
如果已有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 \ ppc64le/varnish
或者,可通过简单的Dockerfile生成包含必要default.vcl的新镜像:
dockerfileFROM ppc64le/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
默认情况下,容器使用100MB缓存大小,通常偏小,可通过VARNISH_SIZE环境变量调整:
console$ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G ppc64le/varnish
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 ppc64le/varnish
默认Varnish配置文件为/etc/varnish/default.vcl,可通过VARNISH_VCL_FILE环境变量覆盖。这有助于创建可使用不同内置配置部署的单一镜像。
此外,可在docker run命令中ppc64le/varnish之后添加参数。如果第一个参数以-开头,整个参数列表将附加到默认命令:
console# 延长默认保持时间 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G ppc64le/varnish -p default_keep=300
如果ppc64le/varnish之后的第一个参数不以-开头,则会覆盖默认命令:
console# 显示命令行选项 $ docker run ppc64le/varnish varnishd -? # 列出可与-p一起使用的参数 $ docker run ppc64le/varnish varnishd -x parameter # 使用自定义参数运行服务器(不要忘记-F以避免后台运行) $ docker run ppc64le/varnish varnishd -F -a :8080 -b 127.0.0.1:8181 -t 600 -p feature=+http2
如上所述,可使用vmod_dynamic进行后端解析。镜像还包含varnish-modules集合。所有用法和语法文档可在该仓库的src/目录中找到。
此外,镜像包含install-vmod工具,可在创建自定义镜像时快速下载、编译和安装vmods。注意,镜像设置了ENV变量VMOD_DEPS以简化操作。
dockerfileFROM ppc64le/varnish:7.1 # 切换到root用户并安装构建依赖 USER root RUN set -e; \ apt-get update; \ apt-get -y install $VMOD_DEPS /pkgs/*.deb; \ \ # 安装一个或多个vmods install-vmod [***] \ \ # 清理并切换回varnish用户 apt-get -y purge --auto-remove $VMOD_DEPS varnish-dev; \ rm -rf /var/lib/apt/lists/* USER varnish
dockerfileFROM ppc64le/varnish:7.1-alpine # 安装构建依赖 USER root RUN set -e; \ apk add --no-cache $VMOD_DEPS; \ \ # 安装一个或多个vmods install-vmod [***] \ \ # 清理 apk del --no-network $VMOD_DEPS USER varnish
ppc64le/varnish镜像有多种版本,适用于不同场景。
ppc64le/varnish:<version>这是默认镜像。如果不确定需求,建议使用此版本。它既可作为临时容器(挂载源代码并启动容器运行应用),也可作为构建其他镜像的基础。
ppc64le/varnish:<version>-alpine此镜像基于流行的Alpine Linux项目,来自alpine***镜像。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此生成的镜像通常更精简。
当最终镜像大小是首要考虑因素时,此变体非常有用。需要注意的是,它使用musl libc而非glibc及相关库,因此软件可能因libc需求/假设的深度而遇到问题。更多讨论参见此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 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429