Контейнер

Простыми словами

Контейнер упаковывает приложение с его пользовательскими зависимостями и запускает изолированный процесс на общем ядре операционной системы. Это легче виртуальной машины, но граница изоляции зависит от ядра, runtime и настроек запуска.

Как применяется

Образ собирают воспроизводимо из минимальной базы, проверяют зависимости и подписывают. При запуске запрещают root и лишние capabilities, задают лимиты ресурсов, read-only filesystem, изолированную сеть и отдельную идентичность нагрузки.

Пример применения

Сервис запускается из подписанного образа по digest, без shell и пакетного менеджера. Контейнер не имеет privileged-режима, получает секрет во время запуска и может обращаться только к одному внутреннему API.

Не путать с

  • виртуальная машинавиртуальная машина содержит отдельную гостевую ОС.
  • ОбразОбраз — неизменяемый шаблон файловой системы, а работающий контейнер — экземпляр образа с состоянием выполнения.

Как это работает

  1. Собрать образЗависимости и приложение фиксируют в слоях, сокращая состав и исключая секреты.
  2. Проверить артефактСканируют уязвимости, формируют SBOM, подписывают и допускают образ по политике.
  3. Создать изоляциюRuntime настраивает namespaces, cgroups, файловую систему, сеть и разрешённые возможности.
  4. Наблюдать выполнениеСобытия, ресурсы и поведение процесса контролируют, а экземпляр заменяют новым при обновлении.

Продолжить изучение

Связанные термины

Частые вопросы

Контейнер безопаснее виртуальной машины?

Не автоматически. Он меньше и быстрее, но разделяет ядро; выбор зависит от угроз, настроек и требуемой границы изоляции.

Можно ли хранить данные внутри контейнера?

Эфемерное состояние исчезает при замене; постоянные данные выносят в управляемое хранилище с отдельной защитой.

Почему нельзя запускать контейнер privileged?

Такой режим снимает значительную часть ограничений и может дать процессу влияние на хост.

Контейнер — изолированный процесс с упакованными зависимостями, использующий ядро хостовой ОС.