摘要:容器镜像同样作为开发人员或是运维人员的产出物,对其进行审查也是必要的。这件事宜早不宜迟,对于企业与个人而言均百利而无一害。
本文节选自我的博客文章:构建可靠、安全、最小化的 Docker 镜像: 原理与实践.
正如Code Review一样,代码审查可以大大提升企业项目的质量。容器镜像同样作为开发人员或是运维人员的产出物,对其进行审查也是必要的。
虽然我们可以通过docker命令结合文件系统浏览的方式进行容器镜像的审查,但其过程需要人工参与,很难做到自动化,更别提将镜像审查集成到CI过程中了。但一个好的工具可以帮我们做到这点。
向大家推荐一个非常棒的开源项目dive,具体安装请参考其项目页。它不但可以方便我们查询具体镜像层的详细信息,还可以作为CI持续集成过程中的镜像审查之用。使用它可以大大提升我们审查镜像的速度,并且可以将这个过程做成自动化。
该项目的具体动态操作图示如下:
如果作为镜像审查之后,可以进行如下命令操作:
$: CI=true diveFetching image... (this can take a while with large images) Parsing image... Analyzing image... efficiency: 95.0863 % wastedBytes: 671109 bytes (671 kB) userWastedPercent: 8.2274 % Run CI Validations... Using default CI config PASS: highestUserWastedPercent SKIP: highestWastedBytes: rule disabled PASS: lowestEfficiency
从输出信息可以得到很多有用的信息,集成到CI过程也就非常容易了。 dive本身就提供了.dive-ci作为项目的CI配置:
rules: # If the efficiency is measured below X%, mark as failed. # Expressed as a percentage between 0-1. lowestEfficiency: 0.95 # If the amount of wasted space is at least X or larger than X, mark as failed. # Expressed in B, KB, MB, and GB. highestWastedBytes: 20MB # If the amount of wasted space makes up for X% or more of the image, mark as failed. # Note: the base image layer is NOT included in the total image size. # Expressed as a percentage between 0-1; fails if the threshold is met or crossed. highestUserWastedPercent: 0.20
集成到CI中,增加以下命令即可:
$: CI=true dive
镜像审查和代码审查类似,是一件开始抵制,开始后就欲罢不能的事。这件事宜早不宜迟,对于企业与个人而言均百利而无一害。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27905.html
摘要:文章主要讲了为什么要搭建私有网盘,以及如何用搭建。一石激起千层浪,关于如何选择网盘,如何应对网盘关闭的讨论一下子又变得此起彼伏。搭建一个只属于自己的网盘所以我决定搭建一个只属于自己的网盘。搭建方法首先你得先有一个自己的。。 文章主要讲了为什么要搭建私有网盘,以及如何用 docker + ownCloud 搭建。原文地址:http://geekplux.com/2016/10/2... ...
摘要:中国论坛提案征集月日截止论坛让用户开发人员从业人员汇聚一堂,面对面进行交流合作。赞助方案出炉多元化奖学金现正接受申请即将首次合体落地中国 2月11日早上有宣布关于runc中的容器逃逸漏洞。我们希望为Kubernetes用户提供一些指导,以确保每个人都安全。 Runc是什么? 简单来说,runc是一个低层工具,它负责大量生成Linux容器。Docker、Containerd和CRI-O等...
由于容器虚拟化技术可以充分利用硬件资源,对于开发团队就像梦想照进了现实。尽管容器化没有推翻虚拟机在企业应用开发和部署上的地位,但是Docker等工具在实现开发、测试和部署大规模现代软件的速度和敏捷性方面大展身手。Docker容器具有诸多优点:无需复杂的hypervisor、可移植性、资源隔离性、轻量级、开放标准、完美适应微服务架构。众多的应用通过容器隔离起来,相互独立地运行在同一台宿主机上,哪家公...
摘要:软件供应链几乎跟实际产品的供应链是相同的。确保软件供应链也十分相似。确保该扫描不止一次地发生,并在爆出新漏洞时,及时通知使用镜像的系统管理员或应用程序开发者。结论在软件生命周期的每个环节,平台都允许企业将安全纳入其中。 在Docker内部,我们花了很多时间讨论一个话题:如何将运行时安全和隔离作为容器架构的一部分?然而这只是软件流水线的一部分。 我们需要的不是一次性的标签或设置,而是需要...
摘要:本文将在安装好的环境下使用命令行客户端开始学习常用指令。镜像常用操作罗列镜像这时只看到列表标题,并没有内容。最后给出了所有的的命令清单。以为基础框架,为数据访问层,为权限授权层,对常用数据进行缓存,基于构建的作为前端框架。 回顾:上一文对Docker做了一些介绍,解释了相关概念,如Docker客户端等,还通过对比Docker与虚拟机的差别了解到Docker的优势与特点。最后介绍了Doc...
阅读 1067·2021-11-23 09:51
阅读 2412·2021-09-29 09:34
阅读 3149·2019-08-30 14:20
阅读 1044·2019-08-29 14:14
阅读 3182·2019-08-29 13:46
阅读 1076·2019-08-26 13:54
阅读 1633·2019-08-26 13:32
阅读 1426·2019-08-26 12:23