# Основы контейнеризации ## Навигация - [🏠 Главная страница курса](../../../README.md) - [📚 Модуль 3](../README.md) --- ## Что такое контейнеризация **Контейнеризация** — это технология упаковки приложений и их зависимостей в легковесные, переносимые контейнеры. ## Преимущества контейнеризации ### 1. Портабельность - Одинаковая среда на всех платформах - "Работает на моей машине" больше не проблема - Легкая миграция между средами ### 2. Изоляция - Приложения изолированы друг от друга - Контроль ресурсов - Безопасность ### 3. Масштабируемость - Быстрое создание и удаление контейнеров - Горизонтальное масштабирование - Эффективное использование ресурсов ### 4. Консистентность - Одинаковая среда разработки, тестирования и продакшена - Предсказуемое поведение - Упрощение развертывания ## Контейнеры vs Виртуальные машины | Аспект | Контейнеры | Виртуальные машины | |--------|------------|-------------------| | Изоляция | Процессная | Аппаратная | | Размер | МБ | ГБ | | Запуск | Секунды | Минуты | | Ресурсы | Общие | Выделенные | | Безопасность | Процессная | Аппаратная | ## Компоненты контейнеризации ### 1. Container Runtime - **containerd** — стандартный runtime - **runc** — низкоуровневый runtime - **CRI-O** — Kubernetes-специфичный runtime ### 2. Container Image - Неизменяемый образ приложения - Слоистая структура - Версионирование ### 3. Container Registry - Хранение образов - Версионирование - Безопасность