注意:这是https://hub.docker.com/_/varnish%E7%9A%84%60amd64%60%E6%9E%B6%E6%9E%84%E6%9E%84%E5%BB%BA%E7%9A%84%E2%80%9C%E6%8C%89%E6%9E%B6%E6%9E%84%E2%80%9D%E4%BB%93%E5%BA%93%E2%80%94%E2%80%94%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E8%AF%B7%E5%8F%82%E8%A7%81%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84%E2%80%9Chttps://github.com/docker-library/official-images#architectures-other-than-amd64%E2%80%9D%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8FFAQ%E4%B8%AD%E7%9A%84%E2%80%9Chttps://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E2%80%9D%E3%80%82
维护者:
https://github.com/varnish/docker-varnish
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接https://github.com/varnish/docker-varnish/blob/ec128addad8eb92680ac7adb2f00f6a679a48be5/fresh/debian/Dockerfile
https://github.com/varnish/docker-varnish/blob/ec128addad8eb92680ac7adb2f00f6a679a48be5/fresh/alpine/Dockerfile
https://github.com/varnish/docker-varnish/blob/ec128addad8eb92680ac7adb2f00f6a679a48be5/old/debian/Dockerfile
https://github.com/varnish/docker-varnish/blob/ec128addad8eb92680ac7adb2f00f6a679a48be5/old/alpine/Dockerfile
https://github.com/varnish/docker-varnish/blob/2c2b9d92008b7623bd837cbb542ae02061d9a598/stable/debian/Dockerfile
问题提交地址:
https://github.com/varnish/docker-varnish/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/varnish/%E3%80%81https://hub.docker.com/r/arm32v7/varnish/%E3%80%81https://hub.docker.com/r/arm64v8/varnish/%E3%80%81https://hub.docker.com/r/i386/varnish/%E3%80%81https://hub.docker.com/r/ppc64le/varnish/%E3%80%81https://hub.docker.com/r/s390x/varnish/
已发布镜像 artifact 详情:
https://github.com/docker-library/repo-info/blob/master/repos/varnish%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/varnish%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fvarnish
https://github.com/docker-library/official-images/blob/master/library/varnish%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/varnish%EF%BC%89
本描述的来源:
https://github.com/docker-library/docs/tree/master/varnish%EF%BC%88https://github.com/docker-library/docs/commits/master/varnish%EF%BC%89
Varnish是一款HTTP加速器,专为内容密集型动态网站和API设计。与其他Web加速器(如最初作为客户端缓存的Squid,或主要作为源服务器的Apache和nginx)不同,Varnish从设计之初就是一款HTTP加速器。Varnish专注于HTTP协议,不像其他代理服务器通常支持FTP、SMTP等网络协议。
***.org/wiki/Varnish_(software))
!https://raw.githubusercontent.com/docker-library/docs/5ca8e315af01e76381d499a2928f7f47a6787f49/varnish/logo.png
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 \ amd64/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 \ amd64/varnish
或者,可通过简单的Dockerfile生成包含VCL文件的新镜像:
dockerfileFROM amd64/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
所有镜像均包含https://github.com/varnishcache/pkg-varnish-cache/blob/master/systemd/varnishreload#L42%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%8F%AF%E5%9C%A8%E4%B8%8D%E9%87%8D%E5%90%AF%E5%AE%B9%E5%99%A8%EF%BC%88%E4%BB%8E%E8%80%8C%E4%B8%8D%E4%B8%A2%E5%A4%B1%E7%BC%93%E5%AD%98%EF%BC%89%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%9B%B4%E6%96%B0%E8%BF%90%E8%A1%8C%E4%B8%AD%E7%9A%84%E9%85%8D%E7%BD%AE%E3%80%82%E6%9C%80%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95%E5%A6%82%E4%B8%8B%EF%BC%9A
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 amd64/varnish
Varnish默认在80端口监听HTTP流量,可通过VARNISH_HTTP_PORT环境变量覆盖。类似地,VARNISH_PROXY_PORT变量(默认8443)指定PROXY协议的监听端口,该协议主要用于与https://hub.docker.com/_/hitch%EF%BC%88%E5%B7%A7%E5%90%88%E7%9A%84%E6%98%AF%EF%BC%8Chitch%E4%B9%9F%E9%BB%98%E8%AE%A4%E4%BD%BF%E7%94%A88443%E7%AB%AF%E5%8F%A3%EF%BC%89%E4%BA%A4%E4%BA%92%E3%80%82
console# 指示Varnish监听7777端口而非80端口 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:7777 -e VARNISH_HTTP_PORT=7777 amd64/varnish
默认Varnish配置文件路径为/etc/varnish/default.vcl,可通过VARNISH_VCL_FILE环境变量覆盖。这有助于创建可部署不同内置配置的单一镜像。
此外,可在docker run命令中amd64/varnish之后添加参数。若第一个参数以-开头,整个参数列表将附加到https://github.com/varnish/docker-varnish/blob/master/fresh/debian/scripts/docker-varnish-entrypoint%EF%BC%9A
console# 延长默认保持时间 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G amd64/varnish -p default_keep=300
若amd64/varnish后的第一个参数不以-开头,则将覆盖默认命令:
console# 显示命令行选项 $ docker run amd64/varnish varnishd -? # 列出可与-p一起使用的参数 $ docker run amd64/varnish varnishd -x parameter # 使用自定义参数运行服务器(不要忘记-F以避免后台运行) $ docker run amd64/varnish varnishd -F -a :8080 -b 127.0.0.1:8181 -t 600 -p feature=+http2
如前所述,可使用https://github.com/nigoroll/libvmod-dynamic%E8%BF%9B%E8%A1%8C%E5%90%8E%E7%AB%AF%E8%A7%A3%E6%9E%90%E3%80%82%E9%95%9C%E5%83%8F%E8%BF%98%E5%8C%85%E5%90%ABhttps://github.com/varnish/varnish-modules%E9%9B%86%E5%90%88%E3%80%82%E6%89%80%E6%9C%89%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%E5%92%8C%E8%AF%AD%E6%B3%95%E6%96%87%E6%A1%A3%E5%8F%AF%E5%9C%A8%E8%AF%A5%E4%BB%93%E5%BA%93%E7%9A%84https://github.com/varnish/varnish-modules/tree/master/src%E7%9B%AE%E5%BD%95%E4%B8%AD%E6%89%BE%E5%88%B0%E3%80%82
此外,镜像包含https://github.com/varnish/toolbox/tree/master/install-vmod helper脚本,可在创建自定义镜像时快速下载、编译和安装vmods。注意,镜像设置了ENV变量VMOD_DEPS以简化操作。
dockerfileFROM amd64/varnish:7.1 # 切换到root用户并安装构建依赖 USER root RUN set -e; \ apt-get update; \ apt-get -y install $VMOD_DEPS /pkgs/*.deb; \ \ # 安装一个或多个vmods install-vmod https://github.com/varnish/varnish-modules/releases/download/0.20.0/varnish-modules-0.20.0.tar.gz; \ \ # 清理并切换回varnish用户 apt-get -y purge --auto-remove $VMOD_DEPS varnish-dev; \ rm -rf /var/lib/apt/lists/* USER varnish
dockerfileFROM amd64/varnish:7.1-alpine # 安装构建依赖 USER root RUN set -e; \ apk add --no-cache $VMOD_DEPS; \ \ # 安装一个或多个vmods install-vmod https://github.com/varnish/varnish-modules/releases/download/0.20.0/varnish-modules-0.20.0.tar.gz; \ \ # 清理 apk del --no-network $VMOD_DEPS USER varnish
amd64/varnish镜像有多种变体,适用于不同场景。
amd64/varnish:<version>这是默认镜像。若不确定需求,建议使用此变体。它既可用作临时容器(挂载源代码并启动容器运行应用),也可用作构建其他镜像的基础。
amd64/varnish:<version>-alpine此镜像基于流行的Alpine Linux项目,来自https://hub.docker.com/_/alpine%E3%80%82Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此通常生成更精简的镜像。
当最终镜像大小是首要考虑因素时,此变体非常有用。需要注意的是,它使用musl libc而非glibc及相关库,因此软件可能因libc需求/假设的深度而遇到问题。更多讨论参见this Hacker News comment thread。
为最小化镜像大小,Alpine-based镜像通常不包含额外相关工具(如git或bash)。若以此为基础镜像,可在自己的Dockerfile中添加所需工具(若不熟悉,参见https://hub.docker.com/_/alpine/%E4%B8%AD%E7%9A%84%E5%AE%89%E8%A3%85%E7%A4%BA%E4%BE%8B%EF%BC%89%E3%80%82
查看此镜像中包含软件的https://github.com/varnishcache/varnish-cache/blob/master/LICENSE%E3%80%82
与所有Docker镜像一样,这些镜像可能还包含其他软件,可能受其他许可证约束(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖)。
部分可自动检测的额外许可证信息可能在https://github.com/docker-library/repo-info/tree/master/repos/varnish%E4%B8%AD%E6%89%BE%E5%88%B0%E3%80%82
对于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务