我应该使用哪个Docker OS基本映像?

时间:2019-08-15 20:07:47

标签: linux amazon-web-services docker dockerfile docker-machine

由于尺寸和包装以及其他考虑因素,我正在基于特定操作系统的映像创建一个容器,该映像具有其特殊性。

就我而言,该容器将在AWS中运行,我可以在任何Linux发行版中进行部署,这引发了我的问题。

哪种Linux发行版更适合作为我的映像的基础?考虑到我没有任何需要满足的依赖性,因此不胜感激。

2 个答案:

答案 0 :(得分:2)

Alpine Linux,因为您可以在跨区域,大小,效率和安全性方面拥有优势-有趣的一点是 docker社区正在将其映像迁移为基于Alpine。

  • 跨IaaS:您可以在每个IaaS(GCP,Azure)中使用它,而无需支付额外费用。
  • 大小:基于Alpine的映像通常是基于其他流行基本映像(Debian,Ubuntu或CentOS,Amazon Linux等)的类似容器大小的1/10,这并不罕见。您可以使用它做基准测试。
  • 效率:Alpine基于musl(一种更清晰的代码)而不是glibc。干净简洁的代码通常更快,您可以看到this discussion
  • 安全性:由于Alpine的数据包核心数量最少,因此存在漏洞的事物更少。这就是为什么它这么小-它是出于安全目的而构建的。此外,Musl的安全足迹(以及漏洞公告的数量)明显低于glibc。

如果您想自己进行一些测试,则可以将LayeredInsight(Image Scanner)与一个简单的php包一起使用:php:7.2.0 vs php:7.2.0-alpine3.6,Alpine版本有0个漏洞。

更深入的讨论:

答案 1 :(得分:0)

将Alipine用作docker文件中的bas映像,并在该映像的基础上构建以生成自己想要用于运行容器的映像。