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/base | cuda-12.1、cuda-12.4、cuda-12.6、cuda-12.8、latest |
superheat/pytorch | cuda-12.1、cuda-12.4、cuda-12.6、cuda-12.8 |
superheat/axolotl | cuda-12.4 |
superheat/comfyui | cuda-12.4、cuda-12.8 |
superheat/a1111 | cuda-12.1 |
superheat/fooocus | cuda-12.1 |
superheat/faster-whisper | cuda-12.6 |
superheat/kohya | cuda-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-tensorflow | latest-gpu-jupyter |
| Data Science (Jupyter) | mirror/jupyter-datascience-notebook | latest |
| Open WebUI | mirror/open-webui-open-webui | main |
| Text Embeddings Inference | mirror/huggingface-text-embeddings-inference | 1.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 模式,并在模板上声明它提供服务的端口。参见启动模式和端口。
使用你自己的镜像
- 把镜像推送到一个中国大陆的镜像仓库,例如你自己的阿里云 ACR 实例。
- 在模板的镜像字段填写带仓库主机的完整引用,例如
acme-registry.cn-shanghai.cr.aliyuncs.com/acme/trainer。镜像仓库主机就是从这个引用推导出来的。 - 在标签字段固定一个真实存在的标签。
[Automatic]只对superheat/下的镜像解析为cuda-<minor>标签,对其他镜像按latest处理。 - 仓库是私有的,就在模板的私有镜像仓库部分填写用户名和访问令牌,例如你的 ACR 实例的访问凭证。参见私有镜像仓库。
- 模式选参数(
args),并声明镜像提供服务的端口。原因见上一节。
需要基础镜像里的工具时,可以 FROM ACR 上的基础镜像构建,它允许匿名拉取。参见基础镜像。