更新时间:2024-03-06 GMT+08:00

客户端上传镜像

操作场景

本章节以容器引擎基础知识中制作的nginx:v1镜像为例,介绍如何使用客户端上传镜像。客户端上传镜像,是指在安装了容器引擎的客户端上使用docker命令将镜像上传到容器镜像服务的镜像仓库。

约束与限制

  • 使用客户端上传镜像,镜像的每个layer大小不能超过10G。
  • 上传镜像的容器引擎客户端版本必须为1.11.2及以上。

前提条件

  • 已创建组织,请参见创建组织
  • 如果您使用非CCE节点的ECS,并通过内网地址连接SWR镜像仓库,需要按以下方法配置insecure-registries:
    1. 修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容:
      {
          "insecure-registries": [
              "{Intranet address}"
          ]
      }

      {Intranet address}获取方式如下:登录SWR管理控制台,在“总览”页面单击右上角“登录指令”,获取内网指令中的内网地址。

      图1 获取内网地址

      如果在“/etc/default/docker”文件的DOCKER_OPTS配置项中已经配置insecure-registry,那么不需要修改“/etc/docker/daemon.json”文件。

      请执行以下命令,将内网地址添加到DOCKER_OPTS配置项的末尾。

      vi /etc/default/docker

      示例:

      # Use DOCKER_OPTS to modify the daemon startup options. DOCKER_OPTS="--insecure-registry={existing configurations} --insecure-registry={Intranet address}"
    2. 重启Docker使配置生效。

      sudo systemctl daemon-reload

      sudo systemctl restart docker

操作步骤

  1. 连接容器镜像服务。

    1. 登录容器镜像服务控制台,以root用户登录容器引擎所在的虚拟机。
    2. 选择容器镜像服务控制台左侧导航栏的“总览”,单击页面右上角的“登录指令”,在弹出的页面中单击复制登录指令。
      • 此处生成的登录指令有效期为24小时,若需要长期有效的登录指令,请参见获取长期有效登录指令。获取了长期有效的登录指令后,在有效期内的临时登录指令仍然可以使用。
      • 登录指令末尾的域名为镜像仓库地址,请记录该地址,后面会使用到。
    3. 在安装Docker的机器中执行上一步复制的登录指令。

      登录成功会显示“Login Succeeded”

  2. 在安装Docker的机器上执行以下命令,为nginx镜像打标签。

    docker tag [镜像名称1:版本名称1] [镜像仓库地址]/[组织名称]/[镜像名称2:版本名称2]

    其中,

    • [镜像名称1:版本名称1]:请替换为您所要上传的实际镜像的名称和版本名称。
    • [镜像仓库地址]:可在SWR控制台上查询,即1.b中登录指令末尾的域名。
    • [组织名称]:请替换为您创建的组织。
    • [镜像名称2:版本名称2]:请替换为您期待的镜像名称和镜像版本。

    示例:

    docker tag nginx:v1 {Image repository address}/group/nginx:v1

  3. 上传镜像至镜像仓库

    docker push [镜像仓库地址]/[组织名称]/[镜像名称2:版本名称2]

    示例:

    docker push {Image repository address}/group/nginx:v1

    终端显示如下信息,表明上传镜像成功。

    6d6b9812c8ae: Pushed 
    695da0025de6: Pushed 
    fe4c16cbf7a4: Pushed 
    v1: digest: sha256:eb7e3bbd8e3040efa71d9c2cacfa12a8e39c6b2ccd15eac12bdc49e0b66cee63 size: 948

    返回容器镜像服务控制台,在“我的镜像”页面,执行刷新操作后可查看到对应的镜像信息。