专栏名称: 细说云计算
关注云平台的网络技术、存储技术,以及少量架构技术。
目录
相关文章推荐
美团技术团队  ·  可信实验白皮书系列04:随机轮转实验 ·  2 天前  
架构师之路  ·  爸爸!除了你,沈括,沈万三... ... ·  3 天前  
字节跳动技术团队  ·  掘金 AI 编程社区- 人人都是 AI 编程家竞赛 ·  2 天前  
51好读  ›  专栏  ›  细说云计算

Oracle发布Smith、Crashcart、Railcar三大开源容器工具集

细说云计算  · 公众号  · 架构  · 2017-07-25 21:40

正文

请到「今天看啥」查看全文


Abrams 讨论了 Docker 容器在构建时将整个 Linux 操作系统(OS)放到容器镜像中所带来的问题。具体来讲,这会导致:

  • 较大的镜像,变成这么庞大的镜像只是为了引入必要的层,使其变得可管理;权限封装——让应用运行在整个 Linux 用户空间中,这样会带来潜在攻击的风险;

  • 漏洞管理——标准的构建流程让我们很难确定某个容器是否需要升级,因为容器实际使用的依赖文件难以确定。

需要注意的是,这里面所述的很多问题在现有的容器系统中已经解决了,比如使用特定 OS 的容器以及 scratch 容器;启用用户命名空间(User Namespace)以及 Linux 核心安全模块,比如 AppArmor;对容器镜像使用静态漏洞扫描器进行安全扫描,比如使用 CoreOS 的 Clair。

Oracle 为了解决在生产环境下所面临的问题,定义了名为微容器的概念(Iron.io 和 JBoss 业已使用过这个术语,不要与其混淆)。具体来讲,微容器:

  • 只包含一个可执行文件及其依赖,没有 shell 和 init 进程

  • 使用只读的 root 文件系统运行,没有分层和 Overlayfs(写入是隔离的,通过卷 mount 来进行处理)

  • 所有的临时文件放在 /run 中,所有的持久化写入(日志文件和数据文件)放到 /write 中

  • 需要针对每个容器修改的配置文件放到 /read 中,它可以通过卷 mount 或 Kubernetes configmap 来修改

  • 没有用户和组文件系统所有权的功能——所有的内容都归一个用户拥有和读取

  • 没有文件系统时间戳(timestamp)和功能(capabilities)

  • 可以重复生成,每次都会生成相同的镜像







请到「今天看啥」查看全文