Контейнер упаковывает приложение с его пользовательскими зависимостями и запускает изолированный процесс на общем ядре операционной системы. Это легче виртуальной машины, но граница изоляции зависит от ядра, runtime и настроек запуска.
Образ собирают воспроизводимо из минимальной базы, проверяют зависимости и подписывают. При запуске запрещают root и лишние capabilities, задают лимиты ресурсов, read-only filesystem, изолированную сеть и отдельную идентичность нагрузки.
Сервис запускается из подписанного образа по digest, без shell и пакетного менеджера. Контейнер не имеет privileged-режима, получает секрет во время запуска и может обращаться только к одному внутреннему API.
Не автоматически. Он меньше и быстрее, но разделяет ядро; выбор зависит от угроз, настроек и требуемой границы изоляции.
Можно ли хранить данные внутри контейнера?Эфемерное состояние исчезает при замене; постоянные данные выносят в управляемое хранилище с отдельной защитой.
Почему нельзя запускать контейнер privileged?Такой режим снимает значительную часть ограничений и может дать процессу влияние на хост.