Q:为什么登录指令执行失败?
A:登录指令执行失败有以下几种情况:
1. 容器引擎未安装正确:
解决方法:重新安装容器引擎。
-
因容器镜像服务支持容器引擎1.11.2及以上版本上传镜像,建议下载对应版本。
-
安装容器引擎需要连接互联网,内网服务器需要绑定弹性IP后才能访问。
2. 临时登录指令已过期或登录指令中区域项目名称、AK、登录密钥错误:
解决方法:登录容器镜像服务控制台,在左侧菜单栏选择“我的镜像”,单击右侧“客户端上传”获取登录指令。
a. 获取临时的登录指令:单击“生成临时登录指令”,在弹出的页面中单击 复制登录指令。
b. 获取长期有效的登录指令:单击“如何获取长期有效登录指令”。
Q:长期有效的登录指令与临时登录指令的区别是什么?
A:• 临时的登录指令代指24个小时后会过期失效,不能再被使用的登录指令。
•长期有效的登录指令有效期为永久。
获取了长期有效的登录指令后,在有效期内的临时登录指令仍然可以使用。
Q:为什么使用客户端上传镜像失败?
A:1.问题现象:使用客户端上传镜像,报如下图所示错误:
问题原因:使用未创建的组织名上传镜像,该组织名已被其他用户注册或当前SWR组织数量已超过配额。
解决方法:
-
该组织名已被其他用户注册时:建议您先创建组织然后再上传镜像。
-
SWR组织数量超过配额时:单个用户的组织数量限制为5个,您可以将镜像上传到已存在的组织下,也可以提交工单申请增加配额。
2.问题现象:使用客户端上传镜像,报如下图所示错误:
问题原因:上传的镜像或镜像版本不存在。
解决方法:通过docker images查看本地镜像,确认要上传的镜像名称及版本后,重新上传镜像。
3.问题现象:使用客户端上传镜像,报如下图所示错误:
问题原因:组织命名或镜像命名不规范。
解决方法:以下分别是组织名(namespace)和仓库名(repository)的命名正则表达式:
namespace:^([a-z]+(?:(?:(?:_|__|[-]*)[a-z0-9]+)+)?)$ ,长度范围为:1-64;
repository:^([a-z0-9]+(?:(?:(?:_|__|[-]*)[a-z0-9]+)+)?)$ ,长度范围为:1-128。
您可以按照上述命名规范,重新指定上传的组织和镜像名称
Q:为什么使用客户端上传镜像失败?
A:SWR对镜像的命名和地址有严格的规范。如果镜像的命名不规范或镜像地址不规范都会导致镜像上传失败。
1.问题现象:通过页面上传镜像,出现“镜像格式不合法”的报错。
问题原因:镜像地址不规范,导致上传失败。
解决方法:镜像地址各个部分的含义如下,最后的tag(版本号)可省略,如果省略则表示latest版本,其余部分均不可省略,且不可多余。
样例:swr.cn-north-1.myhuaweicloud.com/repo_namespace/repo_name:tag
-
swr.cn-north-1.myhuaweicloud.com为容器镜像服务的镜像仓库地址。
-
repo_namespace为组织名称,命名正则表达式为^([a-z]+(?:(?:(?:_|__|[-]*)[a-z0-9]+)+)?)$ ,长度范围为:1-64。
-
epo_name:tag为镜像名称和版本号,镜像命名正则表达式为^([a-z0-9]+(?:(?:(?:_|__|[-]*)[a-z0-9]+)+)?)$ ,长度范围为:1-128。
您可以将镜像解压,打开文件manifest.json文件查看RepoTags字段的值是否符合上述规范。
2.问题现象:通过页面上传镜像,一直卡在上传界面直到超时。
问题原因:镜像命名不规范,导致上传失败。
解决方法:您可以按照镜像命名规范修改镜像名称后,重新上传镜像。
须知:
SWR判定镜像名是否合法不是以用户在界面上传镜像时的文件名为依据,而是依据镜像包中的repositories和manifest.json文件。
Q:为什么通过客户端和页面上传的镜像大小不一样?
A:使用客户端上传的镜像每一层layer进行了tgz压缩,而页面上传的镜像每一层layer只进行了打包,没有压缩,所以两种方式上传的镜像大小显示会不一致。
Q:为什么通过客户端和docker images看到的镜像大小不一样?
A:使用客户端上传的镜像每一层layer进行了tgz压缩,而本地查看的镜像大小是没有经过压缩的,所以大小显示会不一致。
Q:如何通过API上传镜像到SWR?
A:SWR暂时没有开放镜像上传的API。您可以使用docker push上传镜像。即通过客户端的方式上传。
Q:docker push将镜像推送到SWR使用的什么协议?
A:docker push将镜像推送到SWR使用的是HTTPS协议。
Q:如何通过页面下载容器镜像?
A:目前SWR界面不支持直接下载镜像压缩包。建议您使用如下命令下载镜像:
docker pull [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]
Q:docker pull下载的镜像存放在什么地方?如何拷贝?
A:docker pull将镜像下载到节点本地上,您可以通过docker save命令将镜像保存成tar归档文件。