2024-11-21 一站式 AI 平台生日大派对!2024-11-21 一站式 AI 平台生日大派对! 无问芯穹特别推出多项超值福利!立即参与
Skip to content

访问仓库

仓库(Repository)是集中存放镜像的地方。注册服务器(Registry)是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。

智算云平台提供 Docker Registry 服务,为租户在每个可用区提供镜像仓库服务。

Docker Hub

由于运营商网络原因,直接拉取 Docker Hub 镜像时会失败。

shell
# 登入开发机后操作 pull
# 先检查本地是否存在指定的镜像,不存在就从 docker.io 下载
root@is-daieztsmaipd2smo-devmachine-0:~# docker pull ubuntu:22.04
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

建议您在生产环境中谨慎使用 Docker Hub 容器镜像。可改为从智算云平台的镜像中心拉取预置镜像,或拉取租户私有仓库中的自定义镜像。

TIP

智算云平台不提供官方加速服务。您可以自行使用第三方镜像加速服务。Docker 容器服务支持修改配置,详见 Dockerctl

拉取平台预置镜像

平台预置镜像地址可在镜像中心查看。

例如,拉取平台预置的 Ubuntu 镜像:

shell
docker pull cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429

拉取平台预置的 CUDA 镜像:

shell
#拉取平台预置的 CUDA 镜像
docker pull cr.infini-ai.com/infini-ai/cuda:12.2.2-cudnn8-devel-ubuntu20.04

NOTE

  • 由于运营商网络限制,会导致您拉取 Docker Hub 镜像时下载失败。您可以自行使用第三方镜像加速服务。
  • 您可以自行修改 Docker 配置,详见 Dockerctl

租户私有仓库

租户将在智算云平台的 Docker Registry 服务上获得私有的租户镜像仓库,用于存放租户的自定义镜像。平台自动为租户生成租户的镜像仓库地址,免费提供存储空间。

例如,对于租户私有仓库镜像地址 cr.infini-ai.com/te-c7va2fg6uawxdzkf/alpine:latest 来说:

  • cr.infini-ai.com 是智算云平台 Docker Registry 服务器地址。
  • te-c7va2fg6uawxdzkf 是租户的私有仓库名称,与租户 ID 相同。
  • alpine:latest 是镜像名称和镜像标签。

限制与注意事项:

  • 不同可用区有独立的 Docker Registry 服务器,但通用地址为 cr.infini-ai.com。该地址永远指向与当前实例(开发机、任务、推理服务等)同可用区的镜像仓库。该地址不提供公网访问
  • 要从公网向智算云平台的租户私有镜像仓库推送镜像,需要使用与可用区对应的 Docker Registry 服务器地址。智算云平台将提供具体的地址和登录凭证。详见迁移外部镜像
  • 不同可用区镜像仓库之间网络隔离。要跨可用区迁移镜像,步骤与从公网向租户私有镜像仓库推送镜像相同。您需要使用当前可用区的开发机拉取本可用区镜像,登录目标可用区的镜像仓库后再推送镜像。智算云平台将提供具体的地址和登录凭证。详见迁移外部镜像

登录租户私有仓库

已开启 「Docker 容器」功能的开发机中,平台默认已注入当前可用区镜像仓库的登录凭证,并已自动完成登录。因此,您无需在开发机内手动执行 docker login,即可访问与开发机同可用区的租户私有镜像仓库(cr.infini-ai.com/<tenant_id>)。

shell
# 登录 cr.infini-ai.com,平台会直接提示登录成功,无需手动输入密码。
root@is-daicmdwt4s33tzhx-devmachine-0:/# docker login cr.infini-ai.com
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in/tmp/docker-config/config.json
Configure a credential helper to remove this warning.See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

IMPORTANT

cr.infini-ai.com/<tenant_id> 永远指向当前租户在当前可用区的私有镜像仓库,无法用于跨可用区访问私有镜像仓库。如果当前开发机需要访问其他可用区的镜像仓库,例如「江苏 A」可用区的开发机需要向「广东 B」的镜像仓库推送镜像,步骤与从公网向租户私有镜像仓库推送镜像相同。智算云平台将提供目标可用区镜像仓库的具体地址和登录凭证。详见迁移外部镜像

推送至租户镜像仓库

在平台内网中,您可以通过已开启 「Docker 容器」功能的开发机推送镜像至租户私有镜像仓库,作为自定义镜像。

例如,在启用了「Docker 容器」功能的开发机上,平台默认已完成登录,无需执行 docker login 即可推送到租户私有镜像仓库:

shell
# 拉取 quay.io 的镜像作为示例
docker pull quay.io/coreos/etcd:v3.5.5
# 修改镜像标签,使用 cr.infini-ai.com 拼接租户 ID 作为私有镜像仓库的地址,该地址指向与开发机同可用区的镜像仓库
docker tag quay.io/coreos/etcd:v3.5.5 cr.infini-ai.com/te-c7va2fg6uawxdzkf/etcd:v3.5.5
# 推送镜像至租户私有镜像仓库
# 平台默认在开发机内登录了租户在当前可用区的私有镜像仓库,无需 docker login
docker push cr.infini-ai.com/te-c7va2fg6uawxdzkf/etcd:v3.5.5

NOTE

  • 如果您所属租户在不同可用区均购买了资源,请注意租户在不同可用区的镜像仓库的存储网络相互隔离,暂不支持同步(但共用同一个内网地址)。例如,可用区 A 向 cr.infini-ai.com/te-b914754427352251 推送镜像,平台自动映射到可用区 A 的镜像仓库,可用区 B 无法使用该镜像。
  • 如果您有镜像 tar 包,可上传至开发机后使用 docker load 加载镜像,再推送到租户镜像仓库。详见迁移外部镜像
  • 支持从公网向租户私有仓库推送镜像,请使用镜像中心提供的公网地址。详见迁移外部镜像

常见问题

无法拉取 Docker Hub 镜像

由于运营商网络原因,会导致您拉取 Docker Hub 镜像时下载失败。建议您在生产环境中谨慎使用依赖于 Docker Hub 的容器镜像。

无法推送镜像至租户私有镜像仓库

请检查开发机是否已启用「Docker 容器」功能。如未启用,可前往开发机详情页,通过「改配」按钮启用「Docker 容器」功能。

租户私有镜像仓库有存储空间限制。详见租户私有镜像仓库

如何处理镜像构建失败

如果镜像中心显示构建失败,请联系无问芯穹技术支持团队。

如何从公网推送镜像至租户私有镜像仓库

镜像中心 Registry 的通用地址为 cr.infini-ai.com,仅提供内网访问。如需从公网推送镜像至租户私有镜像仓库,请使用镜像中心提供的公网地址。

详见迁移外部镜像