Карта курса и зависимости между разделами
О чём этот файл
Здесь зафиксированы: полный список разделов с объёмом и результатом, граф зависимостей между ними, допустимые перестановки и точки, где можно остановиться, получив законченный набор навыков.
Таблица разделов
Оценка времени дана для учащегося, соответствующего профилю, и включает чтение, выполнение команд и упражнения. Проекты считаются отдельно.
| № | Раздел | Файлов | Теория | Практика | Итого | Ключевой результат |
|---|---|---|---|---|---|---|
| 00 | Обзор курса | 5 | 1 ч | — | 1 ч | Выбрано расписание, понятна структура |
| 01 | Подготовка среды | 8 | 2 ч | 2 ч | 4 ч | Работающий Docker Engine |
| 02 | Основы Containerization | 9 | 4 ч | 2 ч | 6 ч | Понимание, что такое container |
| 03 | Работа с Images | 7 | 3 ч | 2 ч | 5 ч | Умение читать и анализировать image |
| 04 | Containers и lifecycle | 8 | 3 ч | 3 ч | 6 ч | Управление процессом в container |
| 05 | Dockerfile | 11 | 5 ч | 4 ч | 9 ч | Написание качественного Dockerfile |
| 06 | Python внутри Container | 15 | 6 ч | 6 ч | 12 ч | Контейнеризация Python-приложения |
| 07 | Storage | 8 | 3 ч | 3 ч | 6 ч | Управление состоянием |
| 08 | Networking | 8 | 4 ч | 3 ч | 7 ч | Связывание containers, публикация портов |
| 09 | Docker Compose | 9 | 4 ч | 4 ч | 8 ч | Описание многокомпонентной системы |
| 10 | Development workflow | 7 | 3 ч | 3 ч | 6 ч | Рабочее окружение разработчика |
| 11 | Production | 8 | 4 ч | 3 ч | 7 ч | Production-ready image |
| 12 | Security | 9 | 4 ч | 2 ч | 6 ч | Оценка и устранение рисков |
| 13 | Observability | 8 | 3 ч | 4 ч | 7 ч | Диагностика по симптомам |
| 14 | Registry | 6 | 2 ч | 2 ч | 4 ч | Публикация и получение images |
| 15 | Testing | 7 | 3 ч | 3 ч | 6 ч | Integration tests с зависимостями |
| 16 | CI/CD | 7 | 3 ч | 4 ч | 7 ч | Рабочий pipeline |
| 17 | Docker internals | 7 | 4 ч | 3 ч | 7 ч | Понимание уровня ядра |
| 18 | Docker и Kubernetes | 6 | 3 ч | 1 ч | 4 ч | Обоснованное решение об orchestration |
| 19 | Ограничения Docker | 6 | 3 ч | 1 ч | 4 ч | Понимание границ применимости |
| Разделы, итого | 169 | 63 ч | 55 ч | 122 ч |
Проекты и оценивание
| Элемент | Объём | Когда |
|---|---|---|
| Проект 1. Python CLI | 4 ч | после 06 |
| Проект 2. FastAPI service | 8 ч | после 08 |
| Проект 3. Multi-service stack | 12 ч | после 10 |
| Проект 4. Production pipeline | 12 ч | после 16 |
| Debugging challenges | 10 ч | после 13, далее параллельно |
| Итоговый экзамен | 6 ч | в конце |
| Итого дополнительно | 52 ч |
Полный объём курса: примерно 174 часа.
Граф зависимостей
Стрелка означает «требуется до». Пунктирная связь — желательная, но не обязательная.
┌────────────────────┐
│ 00. Обзор курса │
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ 01. Среда │ Docker установлен
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ 02. Основы │ namespaces, cgroups, OCI
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ 03. Images │ layers, digests
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ 04. Lifecycle │ signals, exit codes
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ 05. Dockerfile │ build cache, multi-stage
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ 06. Python ★ │ центральный раздел
└────┬──────────┬────┘
│ │
┌──────────▼───┐ ┌───▼──────────┐
│ 07. Storage │ │ 08. Network │
└──────────┬───┘ └───┬──────────┘
│ │
└────┬─────┘
│
┌─────────▼──────────┐
│ 09. Compose │
└─────────┬──────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
┌─────────▼────────┐ ┌─────────▼────────┐ ┌─────────▼────────┐
│ 10. Dev workflow │ │ 11. Production │ │ 13. Observability│
└─────────┬────────┘ └────┬────────┬────┘ └─────────┬────────┘
│ │ │ │
│ ┌─────────▼──┐ ┌──▼────────────┐ │
│ │ 12. Security│ │ 14. Registry │ │
│ └─────────┬──┘ └──┬────────────┘ │
│ │ │ │
┌─────────▼────────┐ │ │ │
│ 15. Testing │ │ │ │
└─────────┬────────┘ │ │ │
│ │ │ │
└────────────────┴───┬────┴─────────────────┘
│
┌─────────▼──────────┐
│ 16. CI/CD │
└─────────┬──────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
┌─────────▼────────┐ ┌─────────▼────────┐ ┌─────────▼────────┐
│ 17. Internals │ │ 18. Kubernetes │ │ 19. Ограничения │
└──────────────────┘ └──────────────────┘ └──────────────────┘
╎ ╎
╎ ......... углубляет разделы 02, 03 ......╎
╎ .......... опирается на 11, 12, 13 ......╎
Матрица зависимостей
| Раздел | Жёстко требует | Желательно до него | Комментарий |
|---|---|---|---|
| 01 | — | — | Стартовая точка |
| 02 | 01 | — | Нужен работающий Docker для практики |
| 03 | 02 | — | Термины image/layer вводятся в 02 |
| 04 | 02, 03 | — | Нельзя запускать container, не понимая image |
| 05 | 03, 04 | — | CMD/ENTRYPOINT бессмысленны без понимания lifecycle |
| 06 | 05 | 04 | Центральный раздел, опирается на весь предыдущий материал |
| 07 | 04 | 06 | Примеры с правами используют Python-образы |
| 08 | 04 | 06 | Примеры используют FastAPI из 06 |
| 09 | 07, 08 | 06 | Compose объединяет storage и networking |
| 10 | 09 | 06 | Workflow строится на Compose |
| 11 | 06, 09 | 05 | Production-образ — развитие Python-образа |
| 12 | 02, 11 | — | Требует понимания namespaces и production-практик |
| 13 | 04, 07, 08 | 11 | Диагностика охватывает все подсистемы |
| 14 | 03, 11 | — | Digest и tagging опираются на 03 |
| 15 | 09, 10 | 06 | Тесты запускаются через Compose |
| 16 | 14, 15 | 11, 12 | Pipeline собирает всё вместе |
| 17 | 02, 12 | 03, 07, 08 | Углубление уже пройденного |
| 18 | 09, 11 | — | Сравнение Compose и Kubernetes |
| 19 | 11, 12, 13 | 18 | Рефлексия по итогам курса |
Допустимые перестановки
Разделы 01–09 читаются строго последовательно. Перестановка ломает изложение: например, depends_on в разделе 09 объясняется через healthcheck из раздела 05 и DNS из раздела 08.
Начиная с раздела 10 возможны варианты:
| Порядок | Кому подходит |
|---|---|
| 10 → 11 → 12 → 13 → 14 → 15 → 16 (по умолчанию) | Большинству. Плавное движение от разработки к доставке |
| 13 → 10 → 11 → 12 → 14 → 15 → 16 | Тем, кто уже эксплуатирует containers и хочет сначала научиться их чинить |
| 11 → 12 → 14 → 16 → 10 → 15 → 13 | Тем, кому срочно нужен production и pipeline |
| 15 → 10 → 09* | Тем, кто внедряет Docker ради тестов (*раздел 09 повторно) |
Разделы 17, 18, 19 читаются последними в любом варианте: они опираются на весь материал и работают как обобщение.
Точки осмысленной остановки
Курс большой. Если пройти его целиком сразу не получается, есть три точки, где набор навыков уже законченный.
Остановка A: после раздела 06 (~42 часа)
Что получено: понимание containers, умение написать рабочий Dockerfile для Python-приложения, запустить его и отладить базовые проблемы.
Чего не хватает: работы с состоянием, сетью, многокомпонентными системами, production-практик.
Кому достаточно: разработчику, которому нужно только собирать образ своего сервиса, а инфраструктурой занимается другая команда.
Остановка B: после раздела 10 (~75 часов)
Что получено: полный цикл разработки в контейнеризованном окружении — образы, storage, networking, Compose, рабочий процесс с hot reload и миграциями.
Чего не хватает: production hardening, security, диагностики, CI/CD.
Кому достаточно: разработчику в команде, где есть выделенный DevOps.
Остановка C: после раздела 16 (~110 часов)
Что получено: всё практическое — от разработки до автоматической публикации в registry с тестами и сканированием.
Чего не хватает: глубокого понимания internals и рефлексии о границах применимости.
Кому достаточно: большинству. Разделы 17–19 повышают качество суждений, но не добавляют операционных навыков.
Рекомендация: даже при остановке на A или B прочитайте раздел 19. Он короткий и предотвращает самые дорогие ошибки — те, что делаются на уровне архитектурных решений, а не команд.
Тематические срезы
Иногда нужно не пройти курс, а найти ответ. Эти срезы собирают материал по сквозным темам.
Срез «Безопасность»
01.05 группа docker → 01.06 rootless → 02.05 capabilities → 05.09 reproducible builds → 06.07 non-root → весь раздел 12 → 11.06 supply chain → 16.04 scanning и SBOM → security checklist
Срез «Размер и скорость сборки»
03.02 layers → 05.01 build context → 05.05 build cache → 05.06 BuildKit → 05.07 multi-stage → 06.01 base images → 06.02 dependencies → 16.03 cache в CI
Срез «Приложение не отвечает»
04.02 run modes → 04.04 signals → 08.03 port publishing → 08.06 troubleshooting → 09.04 healthchecks → 13.06 таблица диагностики → debugging checklist
Срез «Данные и права доступа»
07.01 файловая система → 07.02 volumes → 07.03 bind mounts → 07.05 UID/GID → 06.07 non-root → 07.06 backup → storage cheat sheet
Навигация
← Предыдущий материал
Вернуться к главному оглавлению
Следующий материал → Учебные расписания