操作场景
本章节介绍如何获取长期有效的登录指令,长期有效登录指令的有效期为永久。
说明l 为保证安全,获取登录指令过程建议在开发环境执行。
操作步骤
步骤 1 获取区域项目名称、镜像仓库地址。
- 登录SWR管理控制台。
- 将鼠标移至页面右上角用户名称上,在下拉菜单中,单击“我的凭证”。
图 我的凭证
- 在项目列表中找到您的虚拟机的所属区域及项目:
图 区域与项目
- 您可以按照获取到的项目信息拼接镜像仓库地址,拼接方式为: registry.区域项目名称.ctyun.cn
如用户虚拟机所在区域为苏州,那么对应的镜像仓库地址为:registry.cn-jssz 1.ctyun.cn 。
步骤 2 获取AK/SK访问密钥。
注意访问密钥即AK/SK(Access Key ID/Secret Access Key),表示一组密钥对,用于验证调用API发起请求的访问者身份,与密码的功能相似。如果您已有AK/SK,可以直接使用,无需再次获取。
-
登录IAM管理控制台,将鼠标移到用户名处,单击“我的凭证”。
-
在左侧导航栏中选择“访问密钥”,单击“新增访问密钥”。
-
输入描述信息,单击“确定”。
-
在弹出的提示页面单击“立即下载”。
下载成功后,在“credentials”文件中即可获取AK和SK信息。
表 credentials文件示例
User Name | Access Key Id | Secret Access Key |
---|---|---|
a***** | RVHVMX****** | H3nPwzgZ****** |
说明为防止访问密钥泄露,建议您将其保存到安全的位置。
步骤 3 登录一台Linux系统的计算机,执行如下命令获取登录密钥。
printf "AK" | openssl dgst -binary -sha256 -hmac "SK" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
请将AK替换为步骤2 credentials文件的 Access Key Id ,SK替换为步骤2 credentials文件的 Secret Access Key 。
示例:
printf "RVHVMX******" | openssl dgst -binary -sha256 -hmac "H3nPwzgZ******" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
执行上面的命令后,我们得到的登录密钥如下:
cab4ceab4a1545***************
说明以上密钥仅为示例,请以实际获得的密钥为准。
步骤 4 使用如下的格式拼接登录指令。
docker login -u [区域项目名称] @ [AK] -p [登录密钥] [镜像仓库地址]
其中,区域项目名称和镜像仓库地址在步骤1中获取,AK在步骤2中获取,登录密钥为步骤3的执行结果。
示例:
docker login -u cn-jssz1@RVHVMX****** -p cab4ceab4a1545*************** registry.cn-jssz1.ctyun.cn
当显示“Login Succeeded”,即为登录成功。
说明l 登录密钥字符串是经过加密的,无法逆向解密,从-p无法获取到SK。
l 获取的登录指令可在其他机器上使用并登录。
步骤 5 (可选)当您退出仓库时,请使用以下命令删除您的认证信息。
cd /root/.docker/
rm -f config.json
步骤 6 (可选)使用history -c命令清理相关使用痕迹,避免隐私信息泄露。