Главная/О курсе/Урок

Карта курса и зависимости между разделами

О чём этот файл

Здесь зафиксированы: полный список разделов с объёмом и результатом, граф зависимостей между ними, допустимые перестановки и точки, где можно остановиться, получив законченный набор навыков.


Таблица разделов

Оценка времени дана для учащегося, соответствующего профилю, и включает чтение, выполнение команд и упражнения. Проекты считаются отдельно.

РазделФайловТеорияПрактикаИтогоКлючевой результат
00Обзор курса51 ч1 чВыбрано расписание, понятна структура
01Подготовка среды82 ч2 ч4 чРаботающий Docker Engine
02Основы Containerization94 ч2 ч6 чПонимание, что такое container
03Работа с Images73 ч2 ч5 чУмение читать и анализировать image
04Containers и lifecycle83 ч3 ч6 чУправление процессом в container
05Dockerfile115 ч4 ч9 чНаписание качественного Dockerfile
06Python внутри Container156 ч6 ч12 чКонтейнеризация Python-приложения
07Storage83 ч3 ч6 чУправление состоянием
08Networking84 ч3 ч7 чСвязывание containers, публикация портов
09Docker Compose94 ч4 ч8 чОписание многокомпонентной системы
10Development workflow73 ч3 ч6 чРабочее окружение разработчика
11Production84 ч3 ч7 чProduction-ready image
12Security94 ч2 ч6 чОценка и устранение рисков
13Observability83 ч4 ч7 чДиагностика по симптомам
14Registry62 ч2 ч4 чПубликация и получение images
15Testing73 ч3 ч6 чIntegration tests с зависимостями
16CI/CD73 ч4 ч7 чРабочий pipeline
17Docker internals74 ч3 ч7 чПонимание уровня ядра
18Docker и Kubernetes63 ч1 ч4 чОбоснованное решение об orchestration
19Ограничения Docker63 ч1 ч4 чПонимание границ применимости
Разделы, итого16963 ч55 ч122 ч

Проекты и оценивание

ЭлементОбъёмКогда
Проект 1. Python CLI4 чпосле 06
Проект 2. FastAPI service8 чпосле 08
Проект 3. Multi-service stack12 чпосле 10
Проект 4. Production pipeline12 чпосле 16
Debugging challenges10 чпосле 13, далее параллельно
Итоговый экзамен6 чв конце
Итого дополнительно52 ч

Полный объём курса: примерно 174 часа.


Граф зависимостей

Стрелка означает «требуется до». Пунктирная связь — желательная, но не обязательная.

text
                          ┌────────────────────┐
                          │ 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Стартовая точка
0201Нужен работающий Docker для практики
0302Термины image/layer вводятся в 02
0402, 03Нельзя запускать container, не понимая image
0503, 04CMD/ENTRYPOINT бессмысленны без понимания lifecycle
060504Центральный раздел, опирается на весь предыдущий материал
070406Примеры с правами используют Python-образы
080406Примеры используют FastAPI из 06
0907, 0806Compose объединяет storage и networking
100906Workflow строится на Compose
1106, 0905Production-образ — развитие Python-образа
1202, 11Требует понимания namespaces и production-практик
1304, 07, 0811Диагностика охватывает все подсистемы
1403, 11Digest и tagging опираются на 03
1509, 1006Тесты запускаются через Compose
1614, 1511, 12Pipeline собирает всё вместе
1702, 1203, 07, 08Углубление уже пройденного
1809, 11Сравнение Compose и Kubernetes
1911, 12, 1318Рефлексия по итогам курса

Допустимые перестановки

Разделы 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 группа docker01.06 rootless02.05 capabilities05.09 reproducible builds06.07 non-rootвесь раздел 1211.06 supply chain16.04 scanning и SBOMsecurity checklist

Срез «Размер и скорость сборки»

03.02 layers05.01 build context05.05 build cache05.06 BuildKit05.07 multi-stage06.01 base images06.02 dependencies16.03 cache в CI

Срез «Приложение не отвечает»

04.02 run modes04.04 signals08.03 port publishing08.06 troubleshooting09.04 healthchecks13.06 таблица диагностикиdebugging checklist

Срез «Данные и права доступа»

07.01 файловая система07.02 volumes07.03 bind mounts07.05 UID/GID06.07 non-root07.06 backupstorage cheat sheet


Навигация

← Предыдущий материал
Вернуться к главному оглавлению
Следующий материал → Учебные расписания

Markdown на GitHub ↗