跳到主要内容

Superheat CN 上的镜像

Superheat CN 的模板镜像放在阿里云容器镜像服务(ACR)上,GPU 主机从那里拉取。本页说明目录中的镜像放在哪里、你自己填写的镜像引用会怎样被拉取,以及怎样让你自己的镜像在主机上拉得下来。

镜像仓库​

superheat-cn-registry.cn-shanghai.cr.aliyuncs.com

模板用到的镜像分布在这个仓库的两个命名空间里:

命名空间内容例子
superheat/Superheat 自己发布的镜像superheat-cn-registry.cn-shanghai.cr.aliyuncs.com/superheat/base
mirror/目录中用到的第三方镜像superheat-cn-registry.cn-shanghai.cr.aliyuncs.com/mirror/open-webui-open-webui

下面列出的仓库都是公开的,允许匿名拉取。主机拉取时不需要凭据,使用它们的模板也不需要填写私有镜像仓库凭据。

superheat/ 仓库​

仓库ACR 上的标签
superheat/basecuda-12.1、cuda-12.4、cuda-12.6、cuda-12.8、latest
superheat/pytorchcuda-12.1、cuda-12.4、cuda-12.6、cuda-12.8
superheat/axolotlcuda-12.4
superheat/comfyuicuda-12.4、cuda-12.8
superheat/a1111cuda-12.1
superheat/fooocuscuda-12.1
superheat/faster-whispercuda-12.6
superheat/kohyacuda-12.8

模板标签为 [Automatic] 时,启动时会在该仓库发布的标签中,选出所选机器的 CUDA 能运行的最新一个。基础镜像本身见基础镜像。

mirror/ 仓库​

第三方镜像的 ACR 引用是这样得出的:去掉原镜像仓库的主机,把剩下路径中的 / 换成 -,放进 mirror/。例如 ghcr.io/open-webui/open-webui 变成 mirror/open-webui-open-webui;Docker Hub 官方镜像的路径前面先补上 library/。

镜像同步只复制目录中可以启动的模板用到的镜像,而且只复制每个模板固定的那个标签——mirror/ 不是上游仓库的完整副本。目前同步的第三方镜像:

模板ACR 上的引用(省略仓库主机)标签
TensorFlow (Jupyter)mirror/tensorflow-tensorflowlatest-gpu-jupyter
Data Science (Jupyter)mirror/jupyter-datascience-notebooklatest
Open WebUImirror/open-webui-open-webuimain
Text Embeddings Inferencemirror/huggingface-text-embeddings-inference1.5

vLLM (OpenAI API)、Ollama、InvokeAI 和 LLaMA-Factory 不再同步。它们的服务无法对每个请求都要求实例访问令牌,所以在能做到之前被标记为即将推出,镜像同步也跳过了它们。已经在运行的实例不受影响。

目录中的引用与你填写的引用​

精选模板的镜像引用在写入模板目录时就已经改写成 ACR 引用。所以精选模板的卡片、详情和它们的副本显示的都是 ACR 引用,主机也从 ACR 拉取。

你新建或编辑模板时填写的镜像引用按原样拉取,不做任何改写。写 pytorch/pytorch,主机就去 Docker Hub 拉取,而 Docker Hub 从中国大陆的主机无法访问,这次部署就会失败。

所以要么从精选模板复制一份再修改,要么写一个中国大陆主机拉得到的完整引用:上面列出的 ACR 引用,或者你自己的中国大陆镜像仓库。

中国大陆主机拉不到的镜像仓库​

镜像仓库从中国大陆的主机
Docker Hub,包括 pytorch/pytorch 这类不带仓库主机的短名称无法访问
GHCR(ghcr.io)非常慢
quay.io、nvcr.io很慢或被阻断

镜像拉取不下来的实例不会进入 running,实例日志里带有拉取错误。参见日志。

nvcr.io 模板显示“即将推出”​

NVIDIA NGC(nvcr.io)的镜像没有同步到 ACR:NGC 镜像的许可没有明确允许再分发。因此目录中来自 nvcr.io 的模板——例如 Triton Inference Server 和 RAPIDS——在 Superheat CN 上都被标记为即将推出,在任何机器上都无法启动。卡片上显示即将推出标记,启动按钮被禁用,工具提示为:“执行功能将在后续版本推出。”;详情对话框中的同一个按钮显示为即将推出。

这些模板仍然可以打开查看。参见“即将推出”是什么意思。

ssh 和 jupyter 模式要用 ACR 上的镜像​

ssh 和 jupyter 模式下,Superheat 用基础镜像的入口点接管容器:启动 sshd(jupyter 模式下还有 JupyterLab)和你的启动脚本,并开放 SSH 端口。Superheat 根据镜像引用决定是否接管。在 Superheat CN 上:

模板上的镜像ssh / jupyter 模式下会怎样
superheat-cn-registry.cn-shanghai.cr.aliyuncs.com/superheat/<仓库>Superheat 接管入口点,正常启动
不带 ACR 主机的 superheat/base 等写法部署失败:Superheat CN 只接受 ACR 上的基础镜像
其他任何镜像,包括你基于基础镜像构建、推送到自己仓库的镜像按镜像自己的入口点运行。Superheat 不接管它,也不会自动开放 SSH 端口

对于最后一类镜像,请使用 args 模式,并在模板上声明它提供服务的端口。参见启动模式和端口。

使用你自己的镜像​

  1. 把镜像推送到一个中国大陆的镜像仓库,例如你自己的阿里云 ACR 实例。
  2. 在模板的镜像字段填写带仓库主机的完整引用,例如 acme-registry.cn-shanghai.cr.aliyuncs.com/acme/trainer。镜像仓库主机就是从这个引用推导出来的。
  3. 在标签字段固定一个真实存在的标签。[Automatic] 只对 superheat/ 下的镜像解析为 cuda-<minor> 标签,对其他镜像按 latest 处理。
  4. 仓库是私有的,就在模板的私有镜像仓库部分填写用户名和访问令牌,例如你的 ACR 实例的访问凭证。参见私有镜像仓库。
  5. 模式选参数(args),并声明镜像提供服务的端口。原因见上一节。

需要基础镜像里的工具时,可以 FROM ACR 上的基础镜像构建,它允许匿名拉取。参见基础镜像。

相关内容​