Skip to content
EN

Что такое OCI image

Коротко:

OCI (Open Container Initiative) — standards organisation (Linux Foundation, 2015), которая defines формат container images + runtime + distribution. Docker, containerd, CRI-O — все compatible с OCI. Image = tarball layers + JSON manifest. OCI registry (распространение): Docker Hub, GHCR, ECR, Harbor. С 2022 Helm charts также distribute через OCI registries.

Ниже: подробности, пример, смежные термины, FAQ.

Проверить свой сайт →

Подробности

  • Image spec: manifest + config + layers (tar.gz каждый)
  • Distribution spec: HTTP API для push/pull с registry
  • Runtime spec: как runtime запускает container (runc, crun implementations)
  • Multi-arch: manifest list для x86_64 + arm64 + s390x
  • Artifacts: не только images — Helm charts, SBOMs, policies — все в OCI format

Пример

# Inspect OCI manifest
docker manifest inspect nginx:latest
# Or with skopeo:
skopeo inspect --raw docker://nginx:latest

# Multi-arch build
docker buildx build --platform linux/amd64,linux/arm64 -t myimage:v1 .

# Push Helm chart as OCI
helm push mychart-1.0.0.tgz oci://ghcr.io/me/charts

Смежные термины

Что такое OCI image?

OCI image — это стандарт формата образов контейнеров, разработанный Open Container Initiative (OCI). Он обеспечивает совместимость между различными инструментами и платформами для работы с контейнерами, такими как Docker, Kubernetes и другими. OCI image состоит из слоев файловой системы, метаданных и конфигурации, что позволяет создавать, хранить и развертывать приложения в контейнерах с минимальными усилиями.

Структура и основные компоненты OCI image

OCI image включает в себя несколько ключевых компонентов, которые обеспечивают его функциональность и совместимость:

  • Слои (Layers): Каждый слой представляет собой изменения в файловой системе, которые накладываются друг на друга. Это позволяет эффективно использовать пространство и ускоряет процесс загрузки.
  • Метаданные (Manifest): JSON-файл, который описывает образ, включая его слои, конфигурацию и зависимости. Он также указывает, какие версии образа совместимы друг с другом.
  • Конфигурация (Config): Включает в себя информацию о том, как запускать контейнер, такие как переменные окружения, команды и настройки.

Стандарт OCI определяет, как эти компоненты должны быть организованы и как они должны взаимодействовать друг с другом, что обеспечивает совместимость между различными реализациями контейнеров.

Практическое использование OCI image

Для работы с OCI образами часто используется команда docker. Например, для создания образа из Dockerfile можно воспользоваться следующей командой:

docker build -t my-oci-image:latest .

После этого можно проверить, соответствует ли созданный образ стандарту OCI, используя команду:

docker inspect my-oci-image:latest

Это выведет информацию о структуре образа, включая его слои и метаданные. Если вы хотите экспортировать образ в формате OCI, можно использовать команду:

docker save my-oci-image:latest | oci-image-tool tar

Таким образом, понимание структуры и компонентов OCI image позволяет разработчикам эффективно управлять контейнерами и интегрировать их в свои рабочие процессы.

Больше по теме

Часто задаваемые вопросы

OCI vs Docker image?

Synonyms сейчас. Docker donated image format в OCI в 2015. Docker images — OCI images. Некоторые legacy formats (v1 Docker manifest) не OCI, но deprecated.

Registry choice?

Docker Hub: free но rate-limited (100 pulls/6h anonymous). GHCR: free для public. ECR: $$ но tight AWS integration. Harbor: self-host.

Signing/verification?

Sigstore (Cosign) — sign OCI artifacts + verify provenance. SBOM (Software Bill of Materials) — attach список deps к image. Policy enforcement — admission controllers.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.