
如果你使用 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缓存容器的资源。这是一个示例镜像,不建议用于生产环境,但可自由尝试。它基于Fedora 26 Boltron作为基础镜像,并安装了Varnish模块。
你可以在files文件夹中找到配置文件default.vcl。Varnish secret文件在每次容器构建时生成,以提升安全性。虽然这提供了一定的安全保障,但我们强烈建议你始终使用自己的secret(见下文Docker运行方式),或在不需要时不暴露<MANAGEMENT_PORT>。
你可以像通常那样配置非本地运行的服务器,但如果有本地运行的服务器,需要额外步骤。例如,假设你有一个Web服务器容器,在容器内运行于80端口,并在主机上暴露为8036端口。若要将此容器作为后端服务器添加,首先需通过docker ps获取其名称:
Shell$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c756b751d06d nginx "/bin/sh -c nginx" 4分钟前 Up 4分钟 0.0.0.0:8036->80/tcp stupefied_albattani
下一步是编辑Varnish配置,使用你选择的主机名。假设你想将该服务器命名为back1,配置如下:
VCLbackend back1 { .host = "back1"; .port = "80"; }
注意端口需使用容器内的端口,而非主机端口。最后一步是将该容器链接到Varnish容器。运行Varnish容器时,为每个本地容器化的后端服务器添加参数--link container_name:hostname。对于上述示例,运行命令如下:
Shell$ docker run -p 6081:6081 -p 6082:6082 --link stupefied_albattani:back1 -v <CONFIG_DIR>:/varnish_config/
你可能注意到了端口发布和卷挂载,这将在下一节解释。
有两种方式在Docker中运行此容器:
Shelldocker run -p <PORT>:6081
这是容器的基本执行方式。<PORT>是缓存前端提供内容的端口。Varnish有自己的管理CLI(见下文<MANAGEMENT_PORT>)。要访问它,你需要Varnish secret文件。Varnish管理CLI文档见https://varnish-cache.org/docs/4.1/reference/varnishadm.html%E3%80%82%E4%BD%A0%E5%8F%AF%E4%BB%A5%E6%8C%82%E8%BD%BD%E8%87%AA%E5%B7%B1%E7%9A%84secret%E6%96%87%E4%BB%B6%EF%BC%88%E5%BF%85%E9%A1%BB%E5%91%BD%E5%90%8D%E4%B8%BAvarnish_secret%EF%BC%89%EF%BC%8C%E5%91%BD%E4%BB%A4%E5%A6%82%E4%B8%8B%EF%BC%9A
Shelldocker run -p <PORT>:6081 -p <MANAGEMENT_PORT>:6082 -v <SECRET_DIR>:/varnish_secret/
若要使用自定义配置而非默认配置,请将其命名为default.vcl并挂载:
docker run -p $PORT:6081 -v <CONFIG_DIR>:/varnish_config/
其中<CONFIG_DIR>是包含default.vcl文件的目录。
如果挂载时出现错误,可能是SELinux导致,可执行以下命令:
chcon -Rt svirt_sandbox_file_t <DIR>
你也可以链接容器作为后端服务器,如前所述。
为方便使用,本仓库包含一个Makefile,可轻松配置以满足你的需求。注意它不提供挂载varnish_secret或自定义配置的方式,你可根据需要编辑:
Makefile# Docker容器标签 IMAGE_NAME = varnish # Varnish提供内容的端口 PORT = 8080 # 可通过Varnish管理CLI访问的端口 MANAGEMENT_PORT = 6082 # 此处可链接其他容器作为后端服务器,格式为container_name:hostname # 请注意你必须在配置中添加对应的主机名 LINK = # Docker的额外参数 FLAGS =
要在OpenShift中运行此容器,需将restricted安全上下文约束(SCC)中的RunAsUser选项从MustRunAsRange改为RunAsAny。执行以下命令:
Shell$ oc login -u system:admin $ oc project default $ oc edit scc restricted
找到RunAsUser并将其值改为RunAsAny。这是因为Varnish根进程需要此权限来沙箱化子进程。
然后可运行仓库中的openshift-template.yml:
Shell$ oc login -u developer $ oc create -f openshift-template.yml
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务