知识卡片
OCI标准化解决容器生态的碎片化风险
内容
容器生态早期面临一个两难:如果整个生态都以Docker一家的实现为事实标准,Docker接口的任何变化都会波及所有依赖它的周边工具;但如果放任大家各自定义容器格式和运行方式,就会导致实现碎片化、互不兼容。OCI(开放容器标准)通过拆分成两份独立的规范来解决这个矛盾:容器镜像标准定义镜像该长什么样,容器运行时标准定义一个符合规范的bundle该如何被启动成容器,两者通过一种标准化的文件系统bundle格式连接起来,任何遵循这两份规范的镜像工具和运行时都能互相搭配使用,不再需要绑定在某一家的实现上。发散:这是”标准先于实现被广泛采用之前及时出手,把事实标准转变为开放标准”的一次成功案例——很多生态在某个先发者形成事实垄断之后才想起标准化,往往为时已晚,容器生态能在Docker一家独大的早期就完成OCI标准化,很大程度得益于Linux基金会等中立方的及时介入。
参考来源
《Linux开源存储全栈详解从Ceph到容器存储》第9章《容器存储》