Контейнер — экземпляр окружения приложения. Изоляция — свойства его границ: один экземпляр может иметь узкие права, другой — общий доступ к ресурсам узла. Способ упаковки не описывает все разрешения.
Контейнер приложения
Определение
Контейнер приложения — управляемое окружение для одного или нескольких процессов с заданными файлами, настройками запуска, полномочиями и границами ресурсов. Обычный контейнер Linux использует ядро узла. Образ служит исходным содержимым, а среда выполнения создаёт и запускает экземпляр.
Также ищут: Container · контейнер уровня ОС · контейнер процесса
Зачем это знать
Поставка образа ещё не означает, что приложение развернуто. Нужны совместимая платформа, настройки запуска, доступ к данным и ограничения ресурсов. В заказе разделите артефакт приложения, вычислительные ресурсы, постоянное хранилище и обслуживание: у них разные жизненные циклы.
Карта понятия
Что подтверждено
Среда выполнения OCI создаёт окружение из подготовленного пакета и конфигурации, запускает заданный процесс и управляет жизненным циклом экземпляра.
Граница применимости: Жизненный цикл контейнера по OCI Runtime Specification.
Образ содержит исходные файлы и настройки, контейнер — созданный из них экземпляр. Обычный контейнер Linux использует ядро узла; отдельное гостевое ядро, как у полной виртуальной машины, из этого не следует.
Граница применимости: Сопоставление OCI и пространств имён Linux с полной виртуализацией по NIST SP 800-125. Речь об обычных контейнерах процессов Linux; среды с дополнительной виртуальной машиной рассматриваются отдельно.
В OCI состояния «создан» и «выполняется» различаются: подготовленное окружение может существовать до запуска основного процесса. Поэтому наличие идентификатора контейнера не доказывает работу приложения.
Граница применимости: Состояния created и running в OCI Runtime Specification.
Конфигурация запуска задаёт исполняемый процесс, аргументы, переменные окружения и подключения файловых систем. Два экземпляра одного образа могут работать по-разному при разных настройках.
Граница применимости: Параметры контейнера в конфигурации среды выполнения OCI.
Удаление экземпляра — операция жизненного цикла контейнера, резервное копирование — создание отдельной копии для восстановления. Срок хранения подключённых внешних данных задаёт система хранения. Эти действия и правила нужно согласовать отдельно.
Граница применимости: Редакторский вывод из жизненного цикла OCI, определения резервной копии NIST и управления хранилищем. Сохранность подключённых данных определяется конкретной системой хранения, а не одним статусом контейнера.
Удаление экземпляра контейнера и удаление образа — разные операции. Один сохранённый образ может служить исходным содержимым для нескольких новых экземпляров.
Граница применимости: Разделение формата образа OCI и жизненного цикла контейнера.
Не путать
Контейнер имеет состояние запуска и завершения. Образ хранит исходное содержимое и сам ничего не исполняет. Для воспроизведения работающего приложения сохраняют не только образ, но и параметры запуска.
Контейнер — экземпляр приложения. Pod Kubernetes добавляет общую единицу размещения, сеть и жизненный цикл для группы контейнеров. Для независимых экземпляров сервиса создают отдельные Pod.
Что проверить
- Зафиксируйте образ по дайджесту и проверьте целевую аппаратную платформу.
- Укажите команду запуска, рабочий каталог и необходимые настройки окружения.
- Определите, где лежат постоянные данные и кто отвечает за их копирование.
- Проверьте пользователя процесса, полномочия и доступ к каталогам узла.
- Задайте ограничения процессора и памяти, затем испытайте их под рабочей нагрузкой.
- Сохраните ошибки создания, код завершения и журналы приложения.
- Проверьте остановку и создание нового экземпляра с теми же внешними данными.
Первоисточники
- Open Container Initiative Image Format Specification
Определяет манифест, индекс, конфигурацию и слои образа, а также дескрипторы объектов с адресацией по содержимому.
- namespaces(7) — Linux manual page
Описывает отдельные представления системных ресурсов в пространствах имён Linux и перечисляет изолируемые классы объектов.
Утверждения: 02
- Guide to Security for Full Virtualization Technologies
Определяет full virtualization, VM/guest, hypervisor, bare-metal и hosted architectures, snapshot и isolation boundary.
Утверждения: 02
- Backup — CSRC Glossary
Определяет backup как копию files и programs, созданную для recovery.
Утверждения: 05
- Security Guidelines for Storage Infrastructure
Разделяет backup, replication, immutability, continuous data protection и point-in-time copies; описывает synchronous и asynchronous replication.
Утверждения: 05
- Pods
Определяет Pod как минимальную единицу размещения с контейнерами на одном узле, общей сетью и возможностью подключать общие тома.