
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
[Varnish Docker 社区]
[Docker 社区 Slack] 、[Server Fault] 、[Unix & Linux] 或 [Stack Overflow]
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 加速,且仅支持 HTTP 协议,不像其他代理服务器常支持 FTP、SMTP 等多种网络协议。
使用 VARNISH_BACKEND_HOST 和 VARNISH_BACKEND_PORT
只需指定后端服务(即 Varnish 要加速的服务器)的地址和端口:
console# 定义后端服务的地址和端口 # 工作目录需挂载为 tmpfs 以避免磁盘 I/O # 容器内部监听 80 端口,外部映射到 8080 端口 $ docker run \ -e VARNISH_BACKEND_HOST=example.com -e VARNISH_BACKEND_PORT=80 \ --tmpfs /var/lib/varnish/varnishd:exec \ -p 8080:80 \ varnish
运行后,访问 localhost:8080 即可看到 example.com 的主页。
使用自定义 VCL 文件
若已有 VCL 配置文件,可直接将其挂载为 /etc/varnish/default.vcl:
console# 将本地 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 \ varnish
也可通过 Dockerfile 将 VCL 文件打包进新镜像:
dockerfileFROM docker.xuanyuan.run/varnish COPY default.vcl /etc/varnish/
将上述 Dockerfile 与 default.vcl 放在同一目录,执行 docker build -t my-varnish . 构建镜像,然后启动容器:
console$ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 my-varnish
所有镜像均内置 [varnishreload] 工具,支持在不重启容器(从而不丢失缓存)的情况下更新配置。基础用法如下:
console# 将新的 VCL 文件复制到运行中的容器 docker cp new_default.vcl running_container:/etc/varnish/default.vcl # 执行配置重载 docker exec running_container varnishreload
varnishreload 还支持重载其他文件、标签(-l)、清理旧标签(-m)等功能。查看完整用法:
consoledocker run docker.xuanyuan.run/varnish varnishreload -h
缓存大小(VARNISH_SIZE)
默认缓存大小为 100MB(通常偏小),可通过 VARNISH_SIZE 环境变量调整:
console# 设置缓存大小为 2GB $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G varnish
监听端口(VARNISH_HTTP_PORT/VARNISH_PROXY_PORT)
VARNISH_HTTP_PORT:HTTP 流量监听端口,默认 80,可自定义。VARNISH_PROXY_PORT:PROXY 协议监听端口,默认 8443(与 [hitch] 镜像默认端口一致)。console# 让 Varnish 监听 7777 端口(而非默认 80) $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:7777 -e VARNISH_HTTP_PORT=7777 varnish
VCL 文件路径(VARNISH_VCL_FILE)
默认 VCL 配置文件路径为 /etc/varnish/default.vcl,可通过 VARNISH_VCL_FILE 环境变量修改。适用于需要内置多种配置的场景。
额外参数
在 docker run 命令中,varnish 后的参数若以 - 开头,会追加到默认启动命令后:
console# 延长默认缓存保留时间 $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G varnish -p default_keep=300
若参数不以 - 开头,则会覆盖默认启动命令:
console# 查看 varnishd 命令行选项 $ docker run varnish varnishd -? # 列出可通过 -p 设置的参数 $ docker run varnish varnishd -x parameter # 自定义参数启动(需添加 -F 确保非后台运行) $ docker run varnish varnishd -F -a :8080 -b 127.0.0.1:8181 -t 600 -p feature=+http2
7.1 及以上版本镜像已包含 [vmod_dynamic] (用于后端解析)和 [varnish-modules] 集合。此外,镜像提供 install-vmod 脚本,方便在构建自定义镜像时编译安装 vmod。
Debian 系统示例
dockerfileFROM docker.xuanyuan.run/varnish:7.1 # 切换到 root 用户并安装构建依赖 USER root RUN set -e; \ apt-get update; \ apt-get -y install $VMOD_DEPS /pkgs/*.deb; \ \ # 安装一个或多个 vmod(示例为 varnish-modules) install-vmod []; \ \ # 清理依赖并切换回 varnish 用户 apt-get -y purge --auto-remove $VMOD_DEPS varnish-dev; \ rm -rf /var/lib/apt/lists/* USER varnish
Alpine 系统示例
dockerfileFROM docker.xuanyuan.run/varnish:7.1-alpine # 安装构建依赖 USER root RUN set -e; \ apk add --no-cache $VMOD_DEPS; \ \ # 安装一个或多个 vmod(示例为 varnish-modules) install-vmod []; \ \ # 清理依赖 apk del --no-network $VMOD_DEPS USER varnish
varnish:<version>默认镜像,适用于大多数场景。可直接作为临时容器运行(挂载配置文件启动),或作为基础镜像构建自定义镜像。
varnish:<version>-alpine基于 [Alpine Linux] ([alpine 官方镜像] )构建,镜像体积极小(约 5MB 基础镜像),适合对镜像大小有严格要求的场景。
注意:Alpine 使用 musl libc 而非 glibc,部分依赖 glibc 的软件可能运行异常。此外,为精简体积,通常不包含 git、bash 等工具,需在自定义 Dockerfile 中手动安装(参考 [Alpine 镜像文档] )。
镜像中软件的许可证信息参见 [varnish-cache 仓库] 。
与所有 Docker 镜像一样,本镜像可能包含基础系统(如 Bash)及依赖软件的其他许可证。自动检测到的额外许可证信息可在 [repo-info 仓库的 varnish/ 目录] 查看。
使用前请确保遵守所有包含软件的许可证要求。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务