容器镜像仓库与模型托管加速平台
容器镜像仓库与模型托管平台笔记
一、顶级域名(TLD)基础
1.1 常见后缀的区别
.co:原为哥伦比亚国家代码顶级域名,现常被理解为 "company" 或 "corporate",适合创业公司和互联网产品。例如huggingface.co。.io:原为英属印度洋领地国家代码顶级域名,现常被理解为 "input/output",在技术圈非常流行。例如docker.io、ghcr.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 平台
| 平台 | 常用域名/地址 | 主要用途 |
|---|---|---|
| OpenAI | api.openai.com | 调用 GPT 系列、DALL·E 等模型 |
| Anthropic | api.anthropic.com | 调用 Claude 系列模型 |
| Google AI | generativelanguage.googleapis.com | 调用 Gemini 系列模型 |
| Cohere | api.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.io和docker.io上的是同一个镜像;Rust 项目也曾因 Docker Hub 拉取速率限制而同步到ghcr.io。
情况二:不同仓库的镜像独立构建
- 即使镜像名称和标签相同,内容也可能不完全一致。
- 例如 Cilium 项目曾发现同一镜像在
quay.io和docker.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.dev、quay.io 或其他任何第三方仓库作为搜索目标。
语法为 docker search [OPTIONS] TERM,TERM 只是一个搜索关键词(如 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其中 LOCATION、PROJECT-ID、REPOSITORY 需替换为实际信息。
拉取镜像前通常需要用 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:latest6.4 podman search 搜索多个仓库
基本用法
在镜像名前面加上 仓库地址/ 作为前缀:
podman search docker.io/nginx
podman search quay.io/nginx各仓库搜索命令示例
| 仓库地址 | 搜索命令示例 |
|---|---|
| docker.io | podman search docker.io/nginx |
| quay.io | podman search quay.io/nginx |
| ghcr.io | podman search ghcr.io/nginx |
| gcr.io | podman 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尝试拉取镜像,能拉下来就说明镜像存在。
七、核心要点总结
- 域名后缀:
.co、.io、.ai等都只是域名,功能无区别,选择主要看品牌和历史。 - 服务地址:AI API、镜像仓库、模型托管各有常用域名,按使用场景选择。
- 国内访问:Docker Hub 易加速,ghcr.io/quay.io 需专门配置,Hugging Face 可用 hf-mirror.com,ModelScope 国内直连。
- 镜像区别:同一镜像可能被镜像到多个仓库(内容相同),也可能独立构建(内容可能有差异),通过官方文档和 Digest 哈希值判断。
- GCR 与 AR:gcr.io 已迁移至 Artifact Registry,旧地址仍可用但底层服务已更换。
- 搜索命令:docker search 只能搜 Docker Hub;搜其他仓库用 podman search 或 gcloud。