Утверждена единая спецификация для образов и runtime изолированных контейнеров
Проект Open Container Initiative (OCI) объявил о готовности первого открытого стандарта, призванного унифицировать формат образов контейнеров и runtime-компонентов, обеспечивающих запуск и жизненный цикл контейнеров. Опубликованные спецификации изначально не привязаны к решениям отдельных вендоров и учитывают повышенные требования к безопасности и переносимости. Благодаря OCI пользователи получат возможность упаковывать свои приложения в универсальные контейнеры, которые смогут работать с любым инструментарием, включая Docker и rkt.
Стандарт подготовлен благодаря совместной работе создателей конкурирующих проектов Docker и CoreOS, ранее пытавшиеся продвигать собственные форматы контейнеров. В состав рабочей группы также вошли представители компаний Google, Microsoft, Amazon Web Services, Cisco, EMC, Fujitsu, Oracle, HP, Huawei, IBM, Intel, Red Hat и VMware. Совместный проект развивается под эгидой организации Linux Foundation. В дальнейшем планируется ввести в строй программу сертификации, нацеленную на подтверждение полного соответствия спецификациям OCI в продуктах, заявляющих об их поддержке.
Одним из первых эталонных решений c реализацией спецификаций OCI стала связка из runtime runC и управляющего инструментария containerd, уже применяемых в Docker и Garden (Cloud Foundry), а также запланированного для интеграции в rkt от CoreOS. Runc предоставляет обособленный набор компонентов для запуска контейнеров на широком спектре систем, позволяя обойтись без внешних зависимостей. Для организации работы с контейнерами runc поддерживает пространства имён Linux (namespaces), различные средства повышения безопасности Linux (SELinux, Apparmor, seccomp, cgroups, capability, pivot_root, сброс uid/gid), live-миграцию (используется CRIU), возможности создания контейнеров в Windows 10, компоненты systemd и переносимые профили производительности. Containerd включает фоновый процесс и клиент командной строки, использующий runc для запуска контейнеров, соответствующих спецификации OCI.
Компания Oracle в рамках проекта Railcar развивает совместимую со спецификациями OCI альтернативу runc/containerd, написанную на языке Rust. В платформе Kubernetes реализован новый экспериментальный интерфейс CRI (Container Runtime Interface), позволяющий подключать альтернативные runtme, в том числе rklet и CRI-O. Компании Amazon, Intel, IBM и Google анонсировали поддержку спецификаций OCI в Amazon ECR (EC2 Container Registry), Intel Clear Containers, IBM Bluemix Container Service и Google Cloud Platform. Над поддержкой OCI также работает команда Apache Mesos.
© OpenNet