阿里云容器K8s入门训练营:阿里云容器镜像服务ACR概述(三)
阿里云容器镜像服务ACR概述(三)
我们先前讲到ACR 企业版,可以帮助我们的企业用户进行容器化 Devsecops 的提效,我们现在就来具体看它的一个最佳实践的应用场景。Devsecops 的提效其实主要是基于 ACR 云原生应用交付链的功能。我们来看这张图,这一位开发者是我们 ACR 企业版的客户,他在将代码编程之后, ACR 其实是可以收到消息的回调的,它会自动的去帮客户构建成不可变的容器形象版本,然后自动的去触发多引擎安全的扫描。同时它还会基于以配置的一些安全策略去阻断那些存在安全风险的后续的交付环节,这样从流程上保障了镜像的一个发布安全,只有那些通过安全策略的镜像才会进入到下一个环节,它会自动的去基于 KMS 的需要加签在ACK上面,这样在加签之后,只有通过对应 KMS 链接成功的镜像才能够去正常的运行,从而可以保障镜像的一个内容可信,避免这种比如说中间人的攻击以及非法镜像的更新和运行。
所以最后大家可以发现基于 ACRE,也就是企业版的云原生应用的交互链,我们可以将安全治理的能力内置到交互整个链路里面,通过你去自定义安全策略,将传统的这一个 Devops 全面升级为 Devsecops,能够保障制品的更加安全,更加高效的交付和上线。
在学习完阿里云ACR企业版的最佳实践应用场景之后,直播间的同学可能会问, ACR个人版有没有应用场景?有,大家可以看一下,这里有两张图,左边是我创建的一个ACR个人版,然后我在上面创建了一个镜像仓库,我把镜像推到了这个仓库里面,后面我也创建了一个 ACK 的集群,我想在这个集群上面去部署一个应用。于是我在ACK 的控制台选择通过镜像去创建一个应用,然后我们可以看到这里有一些镜像的选择,可以选择多可的官方镜像,你可以选择用户的收藏,还可以搜索。然后这第一个是什么?是容器镜像服务,大家可以看到在这里就由我之前所上传的这一个镜像,我可以在 ACK 上面直接通过这一个镜像去部署出一个应用出来,还是非常方便的。
综合来说, ACR的产品优势有这三点,简单易用、安全可控以及无缝集成。
简单应用方面,首先它是不需要自行搭建及运维的,可以一键创建镜像仓库。比如你自己去搭建一个容器的镜像仓库,需要有这么几个步骤,首先你要选择一个镜像仓库的软件,比如选一个我们刚刚讲的 kube registry,你需要准备一个服务器,然后在这个服务器上面运行 Linux的操作系统去安装多可的引擎,引擎安装好之后再去安装镜像仓库的软件,最后再去启动容器。
这个过程操作起来非常麻烦,可能两三句就讲完,但是你自己在实际操作的时候可能会遇到各种各样的问题,但是如果选用阿里云的容器服务ACR,直接可以一键进行创建。
在安全方面有完善的安全体系,同时提供镜像的安全扫描功能,可以去识别镜像的漏洞。
在无缝集成方面,除了我刚刚所讲的将镜像直接运行在 ASK 或者 ACK上面之外,它还可以提供一个自动化的部署流程,比如它可以从源代码到编译测试,然后打包构建镜像,最终自动的生成应用的镜像并发布到云平台的上面,这个就很厉害,镜像都可以自动去生成。
通过本章节的学习,我们了解到了容器镜像是什么,容器镜像仓库,作用是什么?同时我们也了解到阿里云的容器镜像服务ACR,它是一个功能更为丰富、更为全面的镜像仓库。相信通过前面的讲解,大家现在对阿里云的容器镜像服务 ACR有了一个基本的概念。接下来我们将通过一个简单的小实验,带大家更具体、更深入地了解阿里云容器镜像服 ACR这一款产品。
五、实验操作
大家现在看到的界面是我通过远程登录到 ECS 服务器上面,而这台 ECS 服务器我已经提前预装好docker相关的环境,因为这个还是比较费时间的,有了环境之后,我接下来就来给大家演示,我在多个上面下载一个镜像,然后再把这个镜像在本地运行,然后把这个镜像推送到我们的镜像仓库,然后也可以从镜像仓库把这个镜像再拉下来。
我们首先使用docker,pull下载一个镜像,比如nginx,它相当于是一个外部服务器,我们后面可以去访问它,这个下载可能需要一定的时间,下的速度还是比较快的,直播间的小伙伴耐心等待一下。现在下载完毕,我们来看docker images,我们可以看到在当前是有nginx这样的一个镜像。
我们现在尝试将它运行,比如使用docker run 这个命令将这个镜像给它运行,_d_p 将这个端口径映射映到80,然后nginx。这个时候我们来看docker PS _a 这个命令,就可以看到当前运行的一个容器,然后我们来现在尝试的去访问它,curl,因为这个是本地的一个容器,我们可以用 logo boss 的主机去访问它,这时候我们可以看到现在可以看到这个 nginx这个应用的一些 html 的页面,这些信息,欢迎来nginx,这是我们可以看到的。
接下来我们将这个镜像推送到我们的阿里云 ACR 上面,首先我先还是把docker给它删除,docker RMI,这个因为它是运行,要添加force,然后跟上它的容器 ID de0B,这个命令写错了, force de0B。
这个时候我们的这个容器就删除完,但是这个镜像还是有,我们现在去阿里云的这个页面,我们可以看到这是阿里云的主页面,然后我们选择产品,再去选择容器,这里有个容器镜像服 ACR,然后我们选择管理控制台,在这里大家可以看到这个就是个人版的实力和企业版的。
因为我这个是个人账号,所以只创建个人实例,我们点击这个人实例就能够进去个人实例的这样的一个控台界面,它上面会显示些信息,你可以看到它的这一个避免空间是不是只有什么?三个,只有 3 个,我之前已经创建了两个,还剩一个,仓库的这个数量也是 300 个,就跟我们之前讲的一样。
我们现在去创建一个命名空间。创建一个命名空间,这个命名空间,大家在命名的时候要注意你的这个空间的名字是不能够和其他人重名的,因为它后面是要作为你镜像的路径来使用的,这个路径肯定是不能够别人重复。比如我输一个阿里云,除了阿里云它会告诉你命名空间被占用,请重新填写,别人用了就不能使用。我就用有我自己的姓名去做一个命名空间的命名,这个是不会重的。