Обзор образов

Содержание

Понимание контейнеров и образов

Контейнеры и образы — важные понятия, которые необходимо понимать при создании и управлении контейнированным программным обеспечением. Образ содержит набор программного обеспечения, готового к запуску, тогда как контейнер — это запущенный экземпляр образа контейнера. Различные версии представлены разными тегами под одним и тем же именем образа.

Образы

Контейнеры в Alauda Container Platform основаны на образах контейнеров формата OCI или Docker. Образ — это бинарный файл, который включает все необходимые компоненты для запуска одного контейнера, а также метаданные, описывающие его требования и возможности.

Можно рассматривать образ как технологию упаковки. Контейнеры имеют доступ только к ресурсам, определённым в образе, если им не предоставлен дополнительный доступ при создании. Развёртывая один и тот же образ в нескольких контейнерах на разных хостах и балансируя нагрузку между ними, Alauda Container Platform обеспечивает отказоустойчивость и горизонтальное масштабирование сервиса, упакованного в образ.

Вы можете использовать CLI nerdctl или docker напрямую для сборки образов, но Alauda Container Platform также предоставляет builder-образы, которые помогают создавать новые образы, добавляя ваш код или конфигурацию к существующим образам.

Поскольку приложения развиваются со временем, одно имя образа может фактически ссылаться на множество различных версий одного и того же образа. Каждая версия образа уникально идентифицируется своим хешем — длинным шестнадцатеричным числом, например fd44297e2ddb050ec4f…, которое обычно сокращается до 12 символов, например fd44297e2ddb.

Реестр образов

Реестр образов — это сервер контента, который может хранить и предоставлять образы контейнеров. Например:

Реестр содержит коллекцию одного или нескольких репозиториев образов, которые содержат один или несколько тегированных образов. Alauda Container Platform может предоставлять собственный реестр образов для управления пользовательскими образами контейнеров.

Репозиторий образов

Репозиторий образов — это коллекция связанных образов контейнеров и тегов, их идентифицирующих. Например, образы Jenkins для Alauda Container Platform находятся в репозитории:

docker.io/alauda/jenkins-2-centos7

Теги образов

Тег образа — это метка, применяемая к образу контейнера в репозитории, которая отличает конкретный образ от других образов в потоке образов. Обычно тег представляет собой номер версии. Например, здесь :v3 .11.59-2 — это тег:

docker.io/alauda/jenkins-2-centos7:v3.11.59-2

Вы можете добавить дополнительные теги к образу. Например, образ может иметь теги :v3 .11.59-2 и :latest .

Идентификаторы образов

Идентификатор образа — это код SHA (Secure Hash Algorithm), который можно использовать для загрузки образа. SHA-идентификатор образа не может изменяться. Конкретный SHA всегда ссылается на точно такой же содержимое образа контейнера. Например:

docker.io/alauda/jenkins-2-centos7@sha256:ab312bda324

Контейнеры

Основными единицами приложений в Alauda Container Platform являются контейнеры. Технологии Linux-контейнеров — это лёгкие механизмы изоляции запущенных процессов, ограничивающие их взаимодействие только с назначенными ресурсами. Термин контейнер определяется как конкретный запущенный или приостановленный экземпляр образа контейнера.

Множество экземпляров приложений могут работать в контейнерах на одном хосте без видимости процессов, файлов, сети и прочего друг друга. Обычно каждый контейнер предоставляет одну службу, часто называемую микросервисом, например веб-сервер или базу данных, хотя контейнеры могут использоваться для любых рабочих нагрузок.

Ядро Linux уже много лет включает возможности для технологий контейнеров. Проект Docker разработал удобный интерфейс управления Linux-контейнерами на хосте. В последнее время Open Container Initiative разработала открытые стандарты для форматов контейнеров и сред выполнения контейнеров. Alauda Container Platform и Kubernetes добавляют возможность оркестрации контейнеров форматов OCI и Docker в многокластерных установках.

Хотя при использовании Alauda Container Platform вы не взаимодействуете напрямую со средами выполнения контейнеров, понимание их возможностей и терминологии важно для понимания их роли в Alauda Container Platform и работы ваших приложений внутри контейнеров.