Контейнеризация

Контейнеризация — это упаковка приложения и всех необходимых зависимостей в образ контейнера. Процесс сборки контейнера должен соответствовать стандарту Open Container Initiative (OCI). Если на выходе получается образ контейнера, соответствующий этому стандарту, то не важно, какое именно средство контейнеризации использовалось.

Какую проблему решает

До того как контейнеры получили широкое распространение, для запуска множества приложений на одном «железном» (bare-metal) сервере использовались виртуальные машины. Однако виртуальные машины гораздо «тяжелее» контейнеров, и для их работы необходим гипервизор. Создание шаблонизированных решений на базе виртуальных машин затруднено необходимостью хранения, резервного копирования и передачи больших объемов данных. Кроме того, одна из болей виртуальных машин — появляющиеся со временем изменения в конфигурации, которые нарушают принцип неизменяемости.

Как именно решает проблему

От традиционных виртуальных машин образы контейнеров отличаются гораздо меньшими размерами, а для самого процесса контейнеризации нужен только файл со списком зависимостей. Изменения в этом файле можно отслеживать в системе контроля версий, а процесс сборки — автоматизировать, что позволяет организации сосредоточиться на других важных задачах. У каждого образа контейнера есть уникальный идентификатор, привязанный к его содержимому и конфигурации. При планировании (размещении на узлы) и перепланировании контейнеры всегда сбрасываются до исходного состояния, что исключает расхождения в конфигурации.


Последнее изменение December 26, 2023: Review initial Russian content (8c3a264)