更新时间:2024-12-02 GMT+08:00

为什么通过页面上传镜像失败?

SWR对镜像的命名和地址有严格的规范。如果镜像的命名不规范或镜像地址不规范都会导致镜像上传失败。

镜像格式不合法

问题现象:通过页面上传镜像,出现“镜像格式不合法”的报错。

问题原因:镜像地址不规范,导致上传失败。

镜像地址各个部分的含义如下,最后的tag(版本号)可省略,如果省略则表示latest版本,其余部分均不可省略,且不可多余。

样例:registry.example.com/repo_namespace/repo_name:tag

  • registry.example.com为容器镜像服务的镜像仓库地址,此处为示例,以实际地址为准。
  • repo_namespace为组织名称,命名正则表达式为^([a-z]+(?:(?:(?:_|__|[-]*)[a-z0-9]+)+)?)$,长度范围为:1-64。
  • repo_name:tag为镜像名称和版本号,镜像命名正则表达式为^([a-z0-9]+(?:(?:(?:_|__|[-]*)[a-z0-9]+)+)?)$,长度范围为:1-128。

您可以将镜像解压,打开文件manifest.json文件查看RepoTags字段的值是否符合上述规范。

图1 解压后的文件

解决方法:按照命名规范,重新给镜像打tag,然后使用docker save命令保存镜像,然后再使用页面上传。

不允许用户上传镜像

问题现象:使用页面上传镜像,报如下所示错误:

“Not allow to login、upload or download image”

问题原因:用户大批量并发上传镜像或者攻击服务,系统把用户拉黑,用户无法登录和上传下载镜像。

解决方法:请在30分钟之后重新尝试。

一直卡在上传界面直到超时

问题现象:通过页面上传镜像,一直卡在上传界面直到超时。

问题原因:镜像命名不规范,导致上传失败。

解决方法:您可以按照镜像命名规范修改镜像名称后,重新上传镜像。

SWR判定镜像名是否合法不是以用户在界面上传镜像时的文件名为依据,而是依据镜像包中的repositories和manifest.json文件。