容器镜像仓库与模型托管平台笔记

一、顶级域名(TLD)基础

1.1 常见后缀的区别

  • .co:原为哥伦比亚国家代码顶级域名,现常被理解为 "company" 或 "corporate",适合创业公司和互联网产品。例如 huggingface.co
  • .io:原为英属印度洋领地国家代码顶级域名,现常被理解为 "input/output",在技术圈非常流行。例如 docker.ioghcr.io
  • .ai:原为安圭拉国家代码顶级域名,现常被理解为 "人工智能",AI 公司常用。

本质上,这些后缀都只是域名,功能上没有区别,选择哪个主要是品牌和历史原因。

1.2 顶级域名的分类

通用顶级域名(gTLD)

最早的一批(1985 年):

  • .com:商业,最通用
  • .org:组织、非营利
  • .net:网络
  • .edu:教育(美国)
  • .gov:政府(美国)
  • .mil:军事(美国)
  • .int:国际组织

后来新增的通用类:

  • .info.biz.name.pro.mobi.tel.asia.xxx

2012 年后 ICANN 开放的大批新 gTLD:

  • .app.dev.cloud.tech.shop.store
  • .blog.site.online.xyz
  • 品牌类:.google.apple.amazon
  • 地理类:.london.nyc.berlin

国家代码顶级域名(ccTLD)

域名国家/地区常见用途
.cn中国中国网站
.us美国美国
.uk英国英国
.de德国德国
.jp日本日本
.io英属印度洋领地科技圈超流行
.co哥伦比亚公司/创业公司
.ai安圭拉AI 公司超爱
.me黑山个人主页
.tv图瓦卢视频/电视
.ly利比亚短链接(bit.ly)
.fm密克罗尼西亚电台/音频

赞助类顶级域名(sTLD)

  • .aero:航空业
  • .coop:合作社
  • .museum:博物馆
  • .jobs:招聘
  • .travel:旅游
  • .cat:加泰罗尼亚语文化
  • .post:邮政

基础设施与特殊用途

  • .arpa:互联网基础设施(如 DNS 反向解析)
  • .test.example.invalid.localhost:保留用于测试/文档
  • .onion:Tor 暗网(非 ICANN 管理)

国际化域名(IDN)

  • .中国.公司.网络
  • .рф(俄罗斯)、.한국(韩国)等

1.3 总结规律

  • .com 最通用、最贵、最难抢
  • .io / .ai / .co / .dev / .app 是技术圈新宠
  • 小国 ccTLD 靠"缩写巧合"逆袭
  • .org 偏非营利,.net 偏网络基础设施
  • 2012 年后域名后缀大爆发,现在有 1500+ 个 TLD

二、常用服务地址汇总

2.1 AI 模型与 API 平台

平台常用域名/地址主要用途
OpenAIapi.openai.com调用 GPT 系列、DALL·E 等模型
Anthropicapi.anthropic.com调用 Claude 系列模型
Google AIgenerativelanguage.googleapis.com调用 Gemini 系列模型
Cohereapi.cohere.com调用 Cohere 的文本生成与嵌入模型

这些地址通常还会带上版本路径,例如 OpenAI 的完整端点常写成 https://api.openai.com/v1

2.2 镜像与容器仓库

  • docker.io:Docker Hub,最主流的容器镜像仓库
  • ghcr.io:GitHub Container Registry,GitHub 的镜像仓库
  • quay.io:Red Hat 旗下的容器镜像仓库
  • gcr.io:Google Container Registry(已迁移至 Artifact Registry)
  • mcr.microsoft.com:Microsoft Container Registry

2.3 模型与数据集托管

  • huggingface.co:Hugging Face,最主流的模型和数据集托管平台
  • modelscope.cn:阿里旗下的模型社区,国内访问方便
  • kaggle.com:托管大量数据集和预训练模型

三、国内访问情况与镜像站

3.1 镜像与容器仓库的国内访问

仓库国内访问情况加速方式
Docker Hub (docker.io)相对容易云厂商和第三方均提供 registry-mirrors 加速
ghcr.io / quay.io / mcr.microsoft.com需要专门配置通用 registry-mirrors 不生效,需在 containerd 或 Podman 中单独配置,例如用 ghcr.1ms.run 替代 ghcr.io
gcr.io / registry.k8s.io有专门加速方案用第三方域名替换原地址

注意事项

  • 云厂商通常提供仅限内网的镜像加速地址(如腾讯云 mirror.ccs.tencentyun.com),只对自家云服务器生效。
  • Docker 的 registry-mirrors 主要针对 Docker Hub。加速 GHCR 等其他仓库需要在更底层的容器运行时(如 containerd)上配置。
  • 配置层级要分清,否则可能不生效。

3.2 模型与数据集托管的国内访问

平台国内访问情况镜像/替代方案
Hugging Face (huggingface.co)可能不稳定使用 hf-mirror.com 镜像站,工具可通过环境变量配置
ModelScope (modelscope.cn)国内直连阿里旗下,可视为 Hugging Face 的国内替代
Kaggle (kaggle.com)可能不稳定无官方国内镜像站

建议

  • 模型下载优先考虑 ModelScope,省去配置镜像的麻烦。
  • Hugging Face 可用 hf-mirror.com 镜像,huggingface-cli 支持环境变量切换。

四、不同仓库下载的容器是否有区别

4.1 两种情况

情况一:同一个镜像被镜像到了多个仓库

  • 内容完全相同。
  • 很多开源项目为提供更多选择或规避下载限制,会把同一镜像推送到多个仓库。
  • 例如 PyTorch 社区在 ghcr.iodocker.io 上的是同一个镜像;Rust 项目也曾因 Docker Hub 拉取速率限制而同步到 ghcr.io

情况二:不同仓库的镜像独立构建

  • 即使镜像名称和标签相同,内容也可能不完全一致。
  • 例如 Cilium 项目曾发现同一镜像在 quay.iodocker.io 上的 SHA 哈希值不同,因为两个镜像是在两个仓库上独立构建的。
  • 有些项目会主动切换主仓库,如 GDAL 从 docker.io 迁移到 ghcr.io,并明确表示新镜像不再推送到 docker.io;KubeRay 的组件镜像现在主要发布在 quay.io 上,Docker Hub 上的组织被标记为"已停止更新的旧镜像"。

4.2 判断方法

  • 看官方文档推荐用哪个地址。
  • 文档说"只在 A 仓库发布",则只有 A 是最新的。
  • 文档说"同时发布在 A 和 B",则内容大概率相同。
  • 通过对比镜像的 Digest(哈希值)确认:拉取后运行 docker inspect --format='{{index .RepoDigests 0}}' <image_name>,比较不同仓库拉取的镜像哈希值是否一致。

五、Google Container Registry 与 Artifact Registry

5.1 背景

Google Cloud 对容器镜像服务进行了升级换代。旧的 Container Registry (GCR) 已停止服务,被 Artifact Registry (AR) 取代。

  • 旧仓库 Container Registry (gcr.io):曾专门用来存放容器镜像,地址为 gcr.io。已于 2025 年 3 月 18 日停止服务,不再接受新的镜像推送,读取服务也在后续阶段彻底关闭。
  • 新仓库 Artifact Registry (pkg.dev):新一代全托管服务,不仅能管理容器镜像,还能托管 npm、Maven、Python 等语言的软件包。支持为每个代码库单独设置访问权限。标准域名为 pkg.dev,镜像地址格式为 区域名-docker.pkg.dev/项目ID/仓库名/镜像名

5.2 gcr.io 还能用吗

可以。虽然旧的 Container Registry 已停用,但 Google 在 Artifact Registry 里设置了 gcr.io 兼容仓库

  • 依然可以使用 gcr.io 开头的旧地址拉取镜像。
  • gcr.io 地址推送新镜像时,实际存到 Artifact Registry 里。
  • gcr.io 这个域名本身还在用,但背后服务已从 GCR 换成 AR。
  • 新项目建议直接使用 pkg.dev 的新地址格式,以享受完整的新功能。

六、镜像搜索命令的正确用法

6.1 docker search 的局限

docker search 命令只用来搜索 Docker Hub(docker.io)上的镜像,不支持指定 pkg.devquay.io 或其他任何第三方仓库作为搜索目标。

语法为 docker search [OPTIONS] TERMTERM 只是一个搜索关键词(如 nginx),而不是仓库地址。

  • docker search pkg.dev/nginx:错误用法,Docker 会把 pkg.dev/nginx 当作关键词去 Docker Hub 搜索。
  • docker search quay.io/nginx:错误用法,原因同上。

6.2 搜索 Artifact Registry 里的镜像

需要用 Google Cloud 的 gcloud 命令行工具:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY

其中 LOCATIONPROJECT-IDREPOSITORY 需替换为实际信息。

拉取镜像前通常需要用 gcloud auth configure-docker 配置 Docker 认证。

6.3 搜索 Quay.io 里的镜像

使用 podman search 命令,它支持指定仓库地址:

podman search quay.io/nginx

也可以直接列出某个仓库的所有镜像:

podman search quay.io/

拉取镜像可直接用 docker pull

docker pull quay.io/nginx/nginx:latest

6.4 podman search 搜索多个仓库

基本用法

在镜像名前面加上 仓库地址/ 作为前缀:

podman search docker.io/nginx
podman search quay.io/nginx

各仓库搜索命令示例

仓库地址搜索命令示例
docker.iopodman search docker.io/nginx
quay.iopodman search quay.io/nginx
ghcr.iopodman search ghcr.io/nginx
gcr.iopodman search gcr.io/nginx

注意事项

  • podman search 能否成功,取决于目标仓库是否实现了相应的搜索接口。
  • Docker Hub 和 Quay.io 支持较好。
  • ghcr.io / gcr.io 的搜索支持情况不确定,返回空结果不一定代表镜像不存在。
  • 可配置默认搜索列表,在 /etc/containers/registries.conf~/.config/containers/registries.conf 中添加:

    unqualified-search-registries = ["docker.io", "quay.io", "ghcr.io"]
  • 搜索无结果时,可直接用 podman pull 尝试拉取镜像,能拉下来就说明镜像存在。

七、核心要点总结

  1. 域名后缀.co.io.ai 等都只是域名,功能无区别,选择主要看品牌和历史。
  2. 服务地址:AI API、镜像仓库、模型托管各有常用域名,按使用场景选择。
  3. 国内访问:Docker Hub 易加速,ghcr.io/quay.io 需专门配置,Hugging Face 可用 hf-mirror.com,ModelScope 国内直连。
  4. 镜像区别:同一镜像可能被镜像到多个仓库(内容相同),也可能独立构建(内容可能有差异),通过官方文档和 Digest 哈希值判断。
  5. GCR 与 AR:gcr.io 已迁移至 Artifact Registry,旧地址仍可用但底层服务已更换。
  6. 搜索命令:docker search 只能搜 Docker Hub;搜其他仓库用 podman search 或 gcloud。

标签: none

添加新评论