NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

如何选取 Linux 容器镜像

  • 2017-10-29
  • 本文字数:1104 字

    阅读完需:约 4 分钟

一份如何选取 Linux 容器镜像的对比报告阐述了镜像选取中的一些最佳实践。报告中涉及了架构、安全和性能等因素,此外,商业用户还需要考虑厂商的支持情况。

Linux 容器提供了对内核空间和用户空间组件的独立管理,这是是通过使用 cgroups 命名空间(Namespace)等资源及进程隔离机制实现的。虽然Solaris 和BSD 也提供了与Linux 容器技术类似的抽象机制,但此份对比报告只聚焦于Linux 容器技术。运行容器的主机提供了运行容器所需的操作系统内核和一系列工具。另一方面,容器镜像提供了运行分布在容器间的应用所需的软件库、解释器和应用代码。所有这些都依赖于底层系统库。对于解释性语言也同样适用,因为解释器本身也是使用底层语言编写的。

第一个原则是容器镜像的大小。各容器镜像在磁盘上的大小不等,从Fedora 这样的230MB 大小,到Alpine Linux 这样的4MB 大小。但是在选取一个镜像发布版时,镜像的大小并非唯一应该考虑的问题。镜像的主要分组包括Debian/Ubuntu、RHEL、Centos、Fedora 和Alpine。

第二个原则是容器中的安全漏洞问题。该问题已成为很多报告的主题。根据一份最新的研究,Docker Hub 上的公开Debian 容器镜像所具有的漏洞最少,而Ubuntu 镜像的漏洞最多。该研究仅涉及了哪些公开的Docker 镜像。一些工具也提供了不同程度的防护和功能,例如 Clair vuls 这样的开源工具,以及 Twistlock 等这类商业工具。很多软件厂商已实现对发布版及 Web 服务器和数据库这样的通用软件中的未知漏洞的自动测试。一些开源工作也致力于减缓或最小化容器漏洞,两者都会对主机和容器间的相互通信产生影响(参见该幻灯片的第7-9 页)。

第三个原则是镜像中的软件包情况。glibc 等核心库和软件包格式会对容器的安全和性能产生影响。一些成熟的软件库,例如glibc 和gcc,具有很大规模的用户社区,并已经被稳健地使用多年。这也是容器镜像使用这些软件库的首要原因。但是Alpine 等一些发布版坚持另辟蹊径,这已经导致了一些问题

除了上述三个原则,企业用户还需要考虑镜像的生命周期和产品支持因素。RHEL 和Ubuntu 给出了一些商业支持选项,它们通过论坛对各种用户提供社区支持。Ubuntu 和RHEL 引领了生命周期范围的管理,即一个发布版本得到支持的时间范围,在此期间将提供软件缺陷修复、补丁与特性的向后移植(Backporting)及支持。

报告给出的结论是,容器镜像的选择类似于选择Linux 发布版。为此,Google 的“ Distroless ”镜像给出了一种非常有意思的拆分方式。Distroless 仅是一个提供各种应用及其运行时依赖的镜像,并不包含哪些在任一 Linux 发布版中通常都会包含的程序,例如 Shell 和软件包管理等。

查看英文原文: How to Choose a Linux Container Image

2017-10-29 19:002000
用户头像

发布了 391 篇内容, 共 127.2 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

测试开发 | 人工智能的决策智慧:马尔可夫决策过程(MDP)

测吧(北京)科技有限公司

测试

QA团队基于DataLeap开放平台能力的数据测试实践

字节跳动数据平台

大数据 测试 QA 数据研发 数据管控

聊一聊 C# 线程切换后上下文都去了哪里

不在线第一只蜗牛

C# 前端 线程 window

11AC-IPQ4019 and 11AX-IPQ6010 motherboards with or without SFP,What is the difference between ?

wifi6-yiyi

wifi6 802.11ac 802.11AX

Visio Viewer for Mac(Visio文件查看工具)v3.1.0激活版

影影绰绰一往直前

深入理解云原生基础:Docker和Kubernetes的核心概念与应用

Miracle.

#云原生 #技术人的2023总结

KubeWharf:推动云原生技术发展的未来之路

Miracle.

#云原生 #技术人的2023总结 KubeWharf

大模型应用开发之道圆满举办

开放原子开源基金会

开源

多功能项目流程管理软件:OmniPlan Pro 4密钥中文版

mac大玩家j

项目管理软件 Mac软件 Mac项目流程管理

Golang实现JAVA虚拟机-运行时数据区

EquatorCoco

Java 数据库 JVM 数据

松柏之志,下聚百川-松下中国阿里云大数据实践

阿里云大数据AI技术

实时数据获取:抖音API在电商中的应用与影响

Noah

专业强大的扫描仪软件:VueScan Pro中文激活版

胖墩儿不胖y

Mac软件 扫描工具 扫描仪

IPQ6018 and IPQ6000 series: highlighting differences and superior advantages

wallysSK

HBase深度历险 | 京东物流技术团队

京东科技开发者

云安全资源管理定义以及实现方法

行云管家

云计算 云服务 云安全 云资源

万德高科携手航天科技AIRIOT打造智慧能碳管理平台, 助力碳达峰碳中和

AIRIOT

数字化转型 智慧系统 能碳管理

测试开发 | 探索人工智能图像生成的奇妙世界

测吧(北京)科技有限公司

测试

揭秘抖音视频详情API:电商行业的制胜法宝与实时数据获取的奥秘

Noah

测试开发 | 人工智能目标检测

测吧(北京)科技有限公司

测试

“GPT驱动的新程序员时代 ,我们该如何编程”分论坛圆满举办

开放原子开源基金会

开源

测试开发 | 探究人工智能的基石:强化学习的奇妙世界

测吧(北京)科技有限公司

测试

FPGA与DSP在通信算法实现中的应用与区别

计算机 DSP FPGA

教你几个部署多个nginx-ingress的注意事项

华为云开发者联盟

容器 开发 华为云 华为云开发者联盟

制造业数字化转型的核心不止是技术

万界星空科技

数字化转型 工业互联网 mes 万界星空科技mes

我的2023总结,AI快速发展的一年

零零

AI #技术人的2023总结

灰度测试的方式都有哪些?

Geek_2305a8

ABAQUS如何进行疲劳分析?

思茂信息

仿真软件 abaqus 有限元分析 有限元技术 结构仿真

如何鉴别LED电子显示屏好坏

Dylan

质量 评估 电子 LED显示屏

云图说丨初识华为云边缘安全——为加速域名保驾护航

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云云图说

测试开发 | 深度解析人工智能特征提取

测吧(北京)科技有限公司

测试

如何选取Linux容器镜像_Linux_Hrishikesh Barua_InfoQ精选文章