客户端上传镜像(推荐)
操作场景
客户端上传镜像,是指在安装了容器引擎客户端的机器上使用docker命令或者ctr命令将镜像上传到容器镜像服务的镜像仓库。如果是docker容器引擎客户端则使用docker push命令上传。如果是containerd容器引擎客户端则使用ctr push命令上传。
如果容器引擎客户端机器为云上的ECS或CCE节点,根据机器所在区域有两种网络链路可以选择:
- 若机器与容器镜像仓库在同一区域,则上传镜像走内网链路。
- 若机器与容器镜像仓库不在同一区域,则上传镜像走公网链路,机器需要绑定弹性公网IP。
约束与限制
- 使用客户端上传镜像,镜像的每个layer大小不能超过10G。
- 上传镜像的Docker容器引擎客户端版本必须为1.11.2(包含)到24.0.9(包含)之间的。
前提条件
已创建组织,请参见创建组织。
docker容器引擎客户端
- 制作容器镜像或导入镜像文件。
- 连接容器镜像服务。
- 登录容器镜像服务控制台。
- 选择左侧导航栏的“总览”,单击页面右上角的“登录指令”,在弹出的页面中单击复制登录指令。
图1 登录指令
- 此处生成的登录指令有效期为6小时,若需要长期有效的登录指令,请参见获取docker容器引擎长期有效登录指令。获取了长期有效的登录指令后,在有效期内的临时登录指令仍然可以使用。
- 登录指令末尾的域名为镜像仓库地址,请记录该地址,后面会使用到。
- 在安装容器引擎的机器中执行上一步复制的登录指令。
- 在安装容器引擎的机器上执行如下命令,为nginx镜像打标签。
docker tag [镜像名称1:版本名称1] [镜像仓库地址]/[组织名称]/[镜像名称2:版本名称2]
其中,
- [镜像名称1:版本名称1]:请替换为您所要上传的实际镜像的名称和版本名称。
- [镜像仓库地址]:可在SWR控制台上查询,即2.b中登录指令末尾的域名。
- [组织名称]:请替换为您创建的组织。
- [镜像名称2:版本名称2]:请替换为您期待的镜像名称和镜像版本。
示例:
docker tag nginx:v1 swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1
- 上传镜像至镜像仓库。
docker push [镜像仓库地址]/[组织名称]/[镜像名称2:版本名称2]
示例:
docker push swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1
终端显示如下信息,表明上传镜像成功。
The push refers to repository [swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1] fbce26647e70: Pushed fb04ab8effa8: Pushed 8f736d52032f: Pushed 009f1d338b57: Pushed 678bbd796838: Pushed d1279c519351: Pushed f68ef921efae: Pushed v1: digest: sha256:0cdfc7910db531bfa7726de4c19ec556bc9190aad9bd3de93787e8bce3385f8d size: 1780
返回容器镜像服务控制台,在“我的镜像”页面,执行刷新操作后可查看到对应的镜像信息。
containerd容器引擎客户端
- 登录容器镜像服务控制台。
- 在左侧导航栏选择“我的镜像”,单击右侧镜像名称。
- 在镜像详情页面中,进入“Pull/Push指南”页签,复制containerd容器引擎的镜像上传指令。
该指令将于6个小时后过期。若需要长期有效的上传指令,请参见获取containerd容器引擎长期有效的拉取、推送镜像指令。
- 以root用户登录containerd引擎所在的虚拟机。
- 在虚拟机中执行3复制的镜像上传指令。
- 检查镜像是否上传成功。