资讯专栏INFORMATION COLUMN

如何对Docker Image进行审查

HitenDev / 2914人阅读

摘要:容器镜像同样作为开发人员或是运维人员的产出物,对其进行审查也是必要的。这件事宜早不宜迟,对于企业与个人而言均百利而无一害。

本文节选自我的博客文章:构建可靠、安全、最小化的 Docker 镜像: 原理与实践.

正如Code Review一样,代码审查可以大大提升企业项目的质量。容器镜像同样作为开发人员或是运维人员的产出物,对其进行审查也是必要的。

虽然我们可以通过docker命令结合文件系统浏览的方式进行容器镜像的审查,但其过程需要人工参与,很难做到自动化,更别提将镜像审查集成到CI过程中了。但一个好的工具可以帮我们做到这点。

向大家推荐一个非常棒的开源项目dive,具体安装请参考其项目页。它不但可以方便我们查询具体镜像层的详细信息,还可以作为CI持续集成过程中的镜像审查之用。使用它可以大大提升我们审查镜像的速度,并且可以将这个过程做成自动化。

该项目的具体动态操作图示如下:

如果作为镜像审查之后,可以进行如下命令操作:

$: CI=true dive 
Fetching 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... ...

    taowen 评论0 收藏0
  • Runc和CVE-2019-5736

    摘要:中国论坛提案征集月日截止论坛让用户开发人员从业人员汇聚一堂,面对面进行交流合作。赞助方案出炉多元化奖学金现正接受申请即将首次合体落地中国 2月11日早上有宣布关于runc中的容器逃逸漏洞。我们希望为Kubernetes用户提供一些指导,以确保每个人都安全。 Runc是什么? 简单来说,runc是一个低层工具,它负责大量生成Linux容器。Docker、Containerd和CRI-O等...

    blastz 评论0 收藏0
  • 企业级容器安全最佳实践

    由于容器虚拟化技术可以充分利用硬件资源,对于开发团队就像梦想照进了现实。尽管容器化没有推翻虚拟机在企业应用开发和部署上的地位,但是Docker等工具在实现开发、测试和部署大规模现代软件的速度和敏捷性方面大展身手。Docker容器具有诸多优点:无需复杂的hypervisor、可移植性、资源隔离性、轻量级、开放标准、完美适应微服务架构。众多的应用通过容器隔离起来,相互独立地运行在同一台宿主机上,哪家公...

    AJie 评论0 收藏0
  • 使用Docker保护软件供应链安全

    摘要:软件供应链几乎跟实际产品的供应链是相同的。确保软件供应链也十分相似。确保该扫描不止一次地发生,并在爆出新漏洞时,及时通知使用镜像的系统管理员或应用程序开发者。结论在软件生命周期的每个环节,平台都允许企业将安全纳入其中。 在Docker内部,我们花了很多时间讨论一个话题:如何将运行时安全和隔离作为容器架构的一部分?然而这只是软件流水线的一部分。 我们需要的不是一次性的标签或设置,而是需要...

    Jeffrrey 评论0 收藏0
  • Docker容器系列教程(二):常用命令与实操

    摘要:本文将在安装好的环境下使用命令行客户端开始学习常用指令。镜像常用操作罗列镜像这时只看到列表标题,并没有内容。最后给出了所有的的命令清单。以为基础框架,为数据访问层,为权限授权层,对常用数据进行缓存,基于构建的作为前端框架。 回顾:上一文对Docker做了一些介绍,解释了相关概念,如Docker客户端等,还通过对比Docker与虚拟机的差别了解到Docker的优势与特点。最后介绍了Doc...

    wudengzan 评论0 收藏0

发表评论

0条评论

HitenDev

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<