Docker работает на следующих ключевых принципах:
- Контейнеризация: Изоляция приложений и их зависимостей в стандартизированные, переносимые модули (контейнеры).
- Образы: Легковесные, автономные исполняемые пакеты, включающие всё необходимое для запуска приложения (код, библиотеки, системные инструменты, настройки). Они строятся пошагово, используя Dockerfile.
- Слои: Образы состоят из слоев (layers). Каждый слой представляет собой набор изменений в файловой системе. Слои кэшируются и могут использоваться повторно разными образами, что экономит место и ускоряет сборку.
- Изоляция: Контейнеры используют механизмы изоляции ядра Linux (namespaces и cgroups) для разделения процессов, файловых систем, сети и других ресурсов от хостовой системы и других контейнеров.
- **Иммутабельность