** 注意:这是 varnish 镜像的 s390x 架构构建的“按架构”仓库——更多信息,请参阅镜像文档中的“除 amd64 外的架构?”和*镜像常见问题中的“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 加速器(如最初作为客户端缓存的 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 \ s390x/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 \ s390x/varnish
或者,可使用简单的 Dockerfile 生成包含必要 default.vcl 的新镜像:
dockerfileFROM s390x/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 s390x/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 s390x/varnish
默认 Varnish 配置文件为 /etc/varnish/default.vcl,可通过 VARNISH_VCL_FILE 环境变量覆盖。这在需要单个镜像可部署不同内置配置时很有用。
此外,可在 s390x/varnish 后为 docker run 添加参数。如果第一个参数以 - 开头,整个列表将附加到 默认命令:
console# 延长默认保持周期 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G s390x/varnish -p default_keep=300
如果 s390x/varnish 后的第一个参数不以 - 开头,则会被解释为覆盖默认命令:
console# 显示命令行选项 $ docker run s390x/varnish varnishd -? # 列出可与 -p 一起使用的参数 $ docker run s390x/varnish varnishd -x parameter # 使用自定义参数运行服务器(不要忘记 -F 以避免后台运行) $ docker run s390x/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 s390x/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 s390x/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
s390x/varnish 镜像有多种版本,每种版本针对特定用例设计。
s390x/varnish:<version>这是默认镜像。如果不确定需求,可能需要使用此版本。它既可作为临时容器(挂载源代码并启动容器以运行应用),也可作为构建其他镜像的基础。
s390x/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 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429