Про этот курс
Это бесплатный практический курс по Docker для будущего Junior Data Engineer. Курс рассчитан на 50-55 часов, разбит на 21 модуль, на русском, актуален на май 2026. Целевые версии: Docker Engine 28, Compose v2.39, BuildKit v0.26, плюс альтернативы — OrbStack, Rancher Desktop, Podman.
Курс закрывает один из самых частых пробелов в подготовке Junior DE: понимание того, как контейнеры устроены изнутри, и как ими пользоваться в реальных задачах — от локального стенда с Postgres до CI-пайплайна, который собирает Python-образ для ETL-джоба.
Кому этот курс подходит
Курс не для тех, кто никогда не открывал терминал — там сначала нужен курс по основам Linux. Курс не для опытных SRE, которые три года живут с containerd на bare-metal — им будет скучно. А вот если ты собираешь свой первый Airflow-стенд и не уверен, чем docker run отличается от docker create + docker start — добро пожаловать.
Чем этот курс отличается от ютуба и udemy
Курсов по Docker в интернете много. Большинство выглядит так: «вот команда docker run, она запускает контейнер; вот Dockerfile, в нём пишем FROM и CMD; вот docker-compose up, и всё работает». Через неделю после прохождения такого курса у тебя в голове остаются только три команды и смутное ощущение, что Docker — это «как виртуалка, но проще».
Этот курс построен по-другому. Когда мы говорим «контейнер — это процесс с namespaces», мы запускаем lsns на хосте и смотрим, какие namespaces появились. Когда говорим «слои образа кешируются», открываем docker history и смотрим SHA каждого слоя. Когда говорим «volume — это не то же, что bind mount», лезем в /var/lib/docker/volumes/ и убеждаемся, что там реальная директория на хосте.
Junior, который понимает механику Docker, через год становится Middle и спокойно дебажит упавший Airflow worker через docker logs и docker exec. Junior, который зазубрил команды, через год по-прежнему гуглит «docker container not starting» и копирует первый ответ со Stack Overflow.
Второе отличие — фокус на реальный DE-стек. У других курсов в примерах Wordpress и nginx. У нас — Postgres 16.4, MinIO, Kafka, Airflow, тестконтейнеры для интеграционных тестов pipeline’а. Образы для Python ETL, multi-stage сборки с uv, BuildKit cache mounts, чтобы CI-сборка не тянула 200 МБ зависимостей каждый раз.
Что у тебя будет в голове после курса
Конкретный список навыков, которые останутся:
- Запустить
docker run hello-worldи понимать, что произошло на четырёх уровнях: CLI -> Docker daemon -> containerd -> runc + ядро. - Собрать
Dockerfileдля Python ETL-джоба так, чтобы он был меньше 100 МБ (slim base + multi-stage +uv). - Развернуть локально стенд с Airflow + Postgres + Kafka через Compose, дебажить упавший worker через
docker logs --since 5m -fиdocker exec. - Написать интеграционный тест на
testcontainers-python, который поднимает реальный Postgres в CI и кладёт его после теста. - Прочитать
docker info, понять, какой storage driver используется, и почему это важно для bind mount на macOS. - Не путать volume и bind mount, понимать когда какой нужен, и почему
tmpfsбывает полезен для секретов. - Знать, чем OrbStack отличается от Docker Desktop, и почему на M-серии маков OrbStack стартует на порядок быстрее.
Почему именно для Data Engineer
DE работает с состоянием — базы данных, очереди, файловые системы. Контейнер по умолчанию stateless: убил его — данные пропали. Большая часть курса — про то, как примирить эти две вещи: использовать удобство контейнеров (одна команда — есть Postgres 16.4) и при этом не терять данные между рестартами.
Второй кусок DE-специфики — это размер образов и время сборки. Python-образ для Airflow DAG с pandas, scikit-learn и connectors может весить 2 ГБ, если собирать «в лоб». Тот же образ при правильном multi-stage с uv весит 250 МБ. В CI разница между 2 ГБ и 250 МБ — это разница между сборкой за 8 минут и за 90 секунд. Это важно, когда твой релиз ждёт сборки.
Третий кусок — это интеграционные тесты. Без контейнеров писать тест, который проверяет, что DAG корректно пишет в Postgres, — это либо мок (бесполезный), либо реальная база на CI-раннере (хрупкий). С testcontainers-python тест поднимает чистый Postgres, выполняется, и контейнер уезжает в небытие — нет «грязного состояния от предыдущего прогона».
Это бесплатно
Курс полностью бесплатный. Нет paid tier, нет «открой все модули за 990 рублей», нет email-капсул с обещанием PDF. Всё содержимое — здесь, открыто, навсегда.
Почему? Потому что хороших бесплатных курсов по Docker на русском мало, а курсов с фокусом на DE — почти нет. Цель — поднять уровень русскоязычных Junior DE на одну ступеньку выше. Это полезно индустрии, и людям, которые в неё заходят.
Что нужно от тебя
Курс читается как книга, но не работает как книга. Чтобы реально вынести знания, нужно:
- Открыть терминал параллельно с уроком. В каждом модуле есть блоки «Попробуй сам» — это не риторика. Каждая команда должна быть выполнена руками.
- Не пропускать квизы. Они построены так, чтобы поймать «вроде понял» и проверить на «реально понял».
- Не торопиться. 50 часов курса лучше растянуть на 8-10 недель, чем уплотнить в две. Темп 4-6 часов в неделю — комфортный.
В следующем уроке посмотрим, что именно в 21 модуле — карта всего курса.
Как создавался курс
Курс создан при участии Claude (Anthropic) как соавтора: ИИ помогал писать материалы, структурировать темы, генерировать примеры кода и диаграммы. Каждая глава проходила ручную сверку с первоисточниками — спецификациями, документацией, исходным кодом рассматриваемых систем — но гарантировать 100% точность невозможно.
Если вы заметили неточность, опечатку или хотите предложить улучшение — напишите в Telegram-группу курса. Это самый ценный вклад в курс, который вы можете сделать.
Углублённое изучение с Claude
Курс рассчитан на самостоятельное изучение, но любая теория быстрее ложится, если задавать вопросы. Рекомендую держать рядом браузерное расширение Claude (claude.com/download) — оно работает с контентом открытой страницы: выделяете кусок урока и спрашиваете напрямую.
Сценарии, которые особенно хорошо работают для углублённого погружения:
- «Объясни проще» / «дай ещё один пример» — когда формулировка из урока не дошла с первого раза.
- «Покажи, как это устроено на уровне кода / железа» — когда хочется спуститься на слой ниже того, что даёт урок.
- «Как это связано с [другая тема курса]» — когда нужно увязать концепцию с тем, что было раньше.
- «У меня в проекте стек X — как применить?» — когда хочется примерить материал на свой реальный кейс.
Это не замена курсу, а способ ускорить интеграцию материала в вашу картину мира. Если что-то из ответов Claude расходится с уроком — присылайте в Telegram-группу, курс будет уточнён.
Нашли ошибку?
Если заметили неточность, опечатку или хотите предложить улучшение:
Telegram-канал
Подписывайтесь, чтобы узнавать об обновлениях и новых курсах: