使用容器引擎客户端上传镜像

入门指引

容器镜像服务是一种支持容器镜像全生命周期管理的服务,提供简单易用、安全可靠的镜像管理功能,帮助用户快速部署容器化服务。本文档以一个2048应用为例,帮助您学习如何安装容器引擎并构建镜像,以及如何使用容器引擎客户端上传镜像到容器镜像仓库。

说明:上传镜像仅适用于管理控制台操作,暂时没有开放镜像上传的API

您将按以下流程学习如何使用容器镜像服务。

图1 入门流程

    准备工作

    在使用容器镜像服务前,您需要完成注册华为云的准备工作。

    如果您还没有华为云帐号,请参考以下步骤创建。

    1.打开https://www.huaweicloud.com/,单击“注册”。

    2.根据提示信息完成注册,详细操作请参见如何注册华为云管理控制台的用户?。注册成功后,系统会自动跳转至您的个人信息界面。

      一、安装容器引擎

      首先,您需要准备一台虚拟机并安装容器引擎,请确保容器引擎为1.11.2及以上版本。

      1.参考购买并登录Linux弹性云服务器创建一台带有弹性公网IP的Linux弹性云服务器。

      作为演示,弹性云服务器和公网IP的规格不需要太高,例如弹性云服务器的规格为“1vCPUs | 2GB”、公网IP带宽为“1 Mbit/s”即可,操作系统以选择“CentOS 7.5”为例。

      说明:

      ●您也可以使用其他机器安装容器引擎,不创建弹性云服务器。

      ●如果您使用的操作系统为EulerOS,请参考EulerOS操作系统下安装

      ●如果您使用的是Centos操作系统,建议选择CentOS7、CentOS7.2、CentOS7.3、CentOS7.4、CentOS7.5、CentOS7.6操作系统版本,否则可能导致安装异常。

      2.创建完成后返回弹性云服务器列表,单击操作列的“远程登录”,以root用户登录弹性云服务器。

      3.使用如下命令快速安装容器引擎。

      curl -fsSL get.docker.com -o get-docker.sh
      sh get-docker.sh
      sudo systemctl daemon-reload
      sudo systemctl restart docker

        二、构建镜像

        1.在安装容器引擎的虚拟机上执行以下命令,下载2048应用的源码。

        git clone https://gitee.com/jorgensen/2048.git

        说明:若提示“git: command not found”表示未安装Git工具,请先安装该工具(可使用yum install git命令)。

        2.下载成功后,进入“2048”目录。

        cd 2048

        3.修改Dockerfile文件。

        vim Dockerfile

        FROM nginx
        COPY . /usr/share/nginx/html

        EXPOSE 80
        CMD ["nginx", "-g", "daemon off;"]

        ●FROM:指定基础镜像nginx。

        ●COPY:将2048源码拷贝到容器内的“/usr/share/nginx/html”目录。

        ●EXPOSE:暴露容器的80端口。

        ●CMD:指定容器运行时的默认命令。

        按“Esc”,输入:wq,保存并退出。

        4.使用docker build命令构建镜像。

        docker build -t 2048 .

        其中,

        ●-t表示给镜像加一个标签,也就是给镜像取名,这里镜像名为2048。

        ●. 表示上下文路径,镜像构建命令将该路径下的所有内容打包给容器引擎帮助构建镜像。

        5.执行以下命令,查看已成功构建的2048镜像,版本为默认的latest。

        docker images

        # docker images
        REPOSITORY TAG IMAGE ID CREATED SIZE
        2048 latest 8d421c503ed0 About a minute ago 134MB
        nginx latest dd34e67e3371 6 days ago 133MB

        您还可以看到一个nginx镜像,这个镜像是从镜像仓库下载下来,作为2048镜像的基础镜像使用的。

        6.(可选)运行容器镜像。

        镜像构建成功后,您可以执行docker run命令运行容器镜像。

        docker run -p 8080:80 2048

        docker run命令会启动一个容器,命令中-p是将虚拟机的8080端口映射到容器的80端口,即虚拟机的8080端口的流量会映射到容器的80端口,当您在本地机器的浏览器访问“https://ECS的弹性公网IP:8080”时,就会访问到容器中,此时浏览器返回的内容就是2048应用页面。

          三、创建组织

          组织用于隔离镜像,并为帐号下的IAM用户指定不同的权限(读取、编辑、管理)。

          1.登录SWR管理控制台。

          2.选择左侧导航栏的“组织管理”,单击页面右上角的“创建组织”。

          3.填写组织名称,单击“确定”。

          图2 创建组织

            四、连接容器镜像服务

            1.登录SWR管理控制台。

            2.选择左侧导航栏的“总览”,单击页面右上角的“登录指令”,在弹出的页面中单击复制登录指令。

            图3 登录指令

              说明:此处生成的登录指令有效期为24小时,若需要长期有效的登录指令,请参考获取长期有效登录指令

              3.在安装容器引擎的虚拟机中执行上一步复制的登录指令。

              登录成功会显示“Login Succeeded”。

                五、上传镜像

                1.在安装容器引擎的虚拟机上执行以下命令,为2048镜像打标签。

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

                其中,

                [镜像名称1:版本名称1]:请替换为您所要上传的实际镜像的名称和版本名称。

                [镜像仓库地址]:可在SWR控制台上查询,四、连接容器镜像服务中登录指令末尾的域名即为镜像仓库地址。

                [组织名称]:请替换为三、创建组织中创建的组织。

                [镜像名称2:版本名称2]:请替换为您期待的镜像名称和镜像版本。

                示例:

                docker tag 2048:latest swr.cn-north-4.myhuaweicloud.com/cloud-develop/2048:v1

                2.上传镜像至镜像仓库。

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

                示例:

                docker push swr.cn-north-4.myhuaweicloud.com/cloud-develop/2048:v1

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

                The push refers to repository [swr.cn-north-4.myhuaweicloud.com/cloud-develop/2048]
                fbce26647e70: Pushed
                fb04ab8effa8: Pushed
                8f736d52032f: Pushed
                009f1d338b57: Pushed
                678bbd796838: Pushed
                d1279c519351: Pushed
                f68ef921efae: Pushed
                v1: digest: sha256:0cdfc7910db531bfa7726de4c19ec556bc9190aad9bd3de93787e8bce3385f8d size: 1780

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

                3.镜像上传成功后,你可以使用已上传的镜像在云容器引擎中部署工作负载

                  容器镜像服务SWR视频帮助

                  容器镜像服务介绍

                  02:15

                  容器镜像服务介绍

                  镜像同步

                  04:43

                  镜像同步