获取长期有效登录或推拉镜像指令
操作场景
使用容器引擎客户端推送或者拉取镜像时,连接镜像仓库有临时登录指令和长期登录指令。
- 如果您使用的是Docker容器引擎客户端,且需要长期推送或者拉取镜像,那么您可以使用获取docker容器引擎长期有效登录指令来登录容器镜像仓库。如果您只是偶尔推送或者拉取镜像,使用临时登录指令即可。
- 如果您使用的是containerd容器引擎客户端,且需要长期推送或者拉取镜像,那么您可以使用获取containerd容器引擎长期有效的拉取、推送镜像指令来访问容器镜像仓库。
具体差异请参见长期有效的登录指令与临时登录指令的区别是什么?
本章节介绍如何获取docker容器引擎长期有效的登录指令以及containerd容器引擎长期推送、拉取镜像指令,长期有效登录指令的有效期为永久。
临时登录指令提示过期时,需要清除浏览器缓存后重新生成登录指令。
获取方式
下面来介绍如何获取docker容器引擎长期有效登录指令和获取containerd容器引擎长期有效的拉取、推送镜像指令的详细操作。
- 已拥有编程访问权限。获取编程访问权限方式如下:
- 以管理员身份,登录管理控制台。
- 在管理控制台左上角单击
,选择区域和项目。
- 单击左侧导航栏
,选择“管理与监管”>“统一身份认证服务IAM”。
- 在“用户”页搜索框输入并搜索要授予编程访问权限的用户名称。
- 单击用户名称,进入用户详情页。单击“访问方式”后面的
按钮。勾选“编程访问”选项(可单独勾选编程访问,也可以2种访问方式同时勾选。)
图1 修改访问方式
- 已获取AK/SK访问密钥,获取方式如下:
- 登录IAM管理控制台,将鼠标移到用户名处,单击“我的凭证”。
- 在左侧导航栏中选择“访问密钥”,单击“新增访问密钥”。
- 输入描述信息,单击“确定”。
- 在弹出的提示页面单击“立即下载”。
- 下载成功后,在“credentials.csv”文件中即可获取AK和SK信息。
表1 credentials.csv文件示例 User Name
Access Key Id
Secret Access Key
a*****
RVHVMX******
H3nPwzgZ******
说明:
每个访问密钥文件仅能下载一次,请妥善保管。
- 登录容器镜像服务控制台。
- 依次单击页面的“登录指令->长期有效登录指令->导入访问密钥”,选择访问密钥文件credentials.csv或者手动输入步骤2中获取的 credentials.csv文件中的Access Key Id和Secret Access Key,单击“生成指令”后会自动生成长期有效的登录指令。
- 已拥有编程访问权限。获取编程访问权限方式如下:
- 以管理员身份,登录管理控制台。
- 在管理控制台左上角单击
,选择区域和项目。
- 单击左侧导航栏
,选择“管理与监管”>“统一身份认证服务IAM”。
- 在“用户”页搜索框输入并搜索要授予编程访问权限的用户名称。
- 单击用户名称,进入用户详情页。单击“访问方式”后面的
按钮。勾选“编程访问”选项(可单独勾选编程访问,也可以2种访问方式同时勾选。)
图2 修改访问方式
- 已获取AK/SK访问密钥,获取方式如下:
- 登录IAM管理控制台,将鼠标移到用户名处,单击“我的凭证”。
- 在左侧导航栏中选择“访问密钥”,单击“新增访问密钥”。
- 输入描述信息,单击“确定”。
- 在弹出的提示页面单击“立即下载”。
- 下载成功后,在“credentials.csv”文件中即可获取AK和SK信息。
表2 credentials.csv文件示例 User Name
Access Key Id
Secret Access Key
a*****
RVHVMX******
H3nPwzgZ******
说明:
每个访问密钥文件仅能下载一次,请妥善保管。
- 获取区域项目名称、镜像仓库地址。
- 登录IAM管理控制台。
- 将鼠标移至页面右上角用户名称上。
图3 IAM首页
- 在下拉菜单中,单击“我的凭证”。
- 在项目列表中找到您的虚拟机的所属区域及项目:
图4 区域与项目
- 您可以按照获取到的项目信息拼接镜像仓库地址,拼接方式为 : swr.区域项目名称.myhuaweicloud.com。
如用户a*****虚拟机所在区域为华北-北京四,那么对应的镜像仓库地址为:swr.cn-north-4.myhuaweicloud.com。
- 登录一台Linux系统的计算机,执行如下命令获取登录密钥。
printf "AK" | openssl dgst -binary -sha256 -hmac "SK" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
请将AK替换为步骤2credentials.csv文件的Access Key Id,SK替换为步骤2credentials.csv文件的Secret Access Key。
示例:
printf "RVHVMX******" | openssl dgst -binary -sha256 -hmac "H3nPwzgZ******" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
执行上面的命令后,我们得到的登录密钥如下:
cab4ceab4a1545***************
说明:
以上密钥仅为示例,请以实际获得的密钥为准。
- 使用如下的格式拼接长期拉取和推送镜像的指令。
1. 镜像拉取指令拼接
ctr image pull --user [资源空间名]@[AK]:[登录密钥] [镜像仓库地址]
其中,资源空间名(即区域项目名称)和镜像仓库地址在步骤3中获取,AK步骤2中获取的credentials.csv文件中的Access Key Id字段,登录密钥为步骤4的执行结果。
2. 镜像推送指令拼接
ctr image push --user [资源空间名]@[AK]:[登录密钥] [镜像仓库地址]
其中,资源空间名(即区域项目名称)和镜像仓库地址在步骤3中获取,AK步骤2中获取的credentials.csv文件中的Access Key Id字段,登录密钥为步骤4的执行结果。
说明:
- 登录密钥字符串是经过加密的,无法将登录密钥字符串逆向解密成SK。
- 获取的指令可在其他机器上使用并进行镜像上传下载。
- 已拥有编程访问权限。获取编程访问权限方式如下:
- 以管理员身份,登录管理控制台。
- 在管理控制台左上角单击
,选择区域和项目。
- 单击左侧导航栏
,选择“管理与监管”>“统一身份认证服务IAM”。
- 在“用户”页搜索框输入并搜索要授予编程访问权限的用户名称。
- 单击用户名称,进入用户详情页。单击“访问方式”后面的
按钮。勾选“编程访问”选项(可单独勾选编程访问,也可以2种访问方式同时勾选。)
图1 修改访问方式
- 已获取AK/SK访问密钥,获取方式如下:
- 登录IAM管理控制台,将鼠标移到用户名处,单击“我的凭证”。
- 在左侧导航栏中选择“访问密钥”,单击“新增访问密钥”。
- 输入描述信息,单击“确定”。
- 在弹出的提示页面单击“立即下载”。
- 下载成功后,在“credentials.csv”文件中即可获取AK和SK信息。
表1 credentials.csv文件示例 User Name
Access Key Id
Secret Access Key
a*****
RVHVMX******
H3nPwzgZ******
说明:
每个访问密钥文件仅能下载一次,请妥善保管。
- 登录容器镜像服务控制台。
- 依次单击页面的“登录指令->长期有效登录指令->导入访问密钥”,选择访问密钥文件credentials.csv或者手动输入步骤2中获取的 credentials.csv文件中的Access Key Id和Secret Access Key,单击“生成指令”后会自动生成长期有效的登录指令。
- 已拥有编程访问权限。获取编程访问权限方式如下:
- 以管理员身份,登录管理控制台。
- 在管理控制台左上角单击
,选择区域和项目。
- 单击左侧导航栏
,选择“管理与监管”>“统一身份认证服务IAM”。
- 在“用户”页搜索框输入并搜索要授予编程访问权限的用户名称。
- 单击用户名称,进入用户详情页。单击“访问方式”后面的
按钮。勾选“编程访问”选项(可单独勾选编程访问,也可以2种访问方式同时勾选。)
图2 修改访问方式
- 已获取AK/SK访问密钥,获取方式如下:
- 登录IAM管理控制台,将鼠标移到用户名处,单击“我的凭证”。
- 在左侧导航栏中选择“访问密钥”,单击“新增访问密钥”。
- 输入描述信息,单击“确定”。
- 在弹出的提示页面单击“立即下载”。
- 下载成功后,在“credentials.csv”文件中即可获取AK和SK信息。
表2 credentials.csv文件示例 User Name
Access Key Id
Secret Access Key
a*****
RVHVMX******
H3nPwzgZ******
说明:
每个访问密钥文件仅能下载一次,请妥善保管。
- 获取区域项目名称、镜像仓库地址。
- 登录IAM管理控制台。
- 将鼠标移至页面右上角用户名称上。
图3 IAM首页
- 在下拉菜单中,单击“我的凭证”。
- 在项目列表中找到您的虚拟机的所属区域及项目:
图4 区域与项目
- 您可以按照获取到的项目信息拼接镜像仓库地址,拼接方式为 : swr.区域项目名称.myhuaweicloud.com。
如用户a*****虚拟机所在区域为华北-北京四,那么对应的镜像仓库地址为:swr.cn-north-4.myhuaweicloud.com。
- 登录一台Linux系统的计算机,执行如下命令获取登录密钥。
printf "AK" | openssl dgst -binary -sha256 -hmac "SK" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
请将AK替换为步骤2credentials.csv文件的Access Key Id,SK替换为步骤2credentials.csv文件的Secret Access Key。
示例:
printf "RVHVMX******" | openssl dgst -binary -sha256 -hmac "H3nPwzgZ******" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
执行上面的命令后,我们得到的登录密钥如下:
cab4ceab4a1545***************
说明:
以上密钥仅为示例,请以实际获得的密钥为准。
- 使用如下的格式拼接长期拉取和推送镜像的指令。
1. 镜像拉取指令拼接
ctr image pull --user [资源空间名]@[AK]:[登录密钥] [镜像仓库地址]
其中,资源空间名(即区域项目名称)和镜像仓库地址在步骤3中获取,AK步骤2中获取的credentials.csv文件中的Access Key Id字段,登录密钥为步骤4的执行结果。
2. 镜像推送指令拼接
ctr image push --user [资源空间名]@[AK]:[登录密钥] [镜像仓库地址]
其中,资源空间名(即区域项目名称)和镜像仓库地址在步骤3中获取,AK步骤2中获取的credentials.csv文件中的Access Key Id字段,登录密钥为步骤4的执行结果。
说明:
- 登录密钥字符串是经过加密的,无法将登录密钥字符串逆向解密成SK。
- 获取的指令可在其他机器上使用并进行镜像上传下载。