
Docker и Docker Compose: контейнеризация приложений
Упакуйте приложение в Docker и запустите его с PostgreSQL через Compose. Образы, сети, тома, диагностика поломок, обновление версий и восстановление данных — с практикой и итоговым проектом.
О курсе
Приложение работает у вас — а у коллеги не запускается? Docker помогает собрать код и зависимости в образ и запускать проект в предсказуемом окружении. На курсе вы пройдёте путь от первого контейнера до приложения с PostgreSQL, которое можно передать другому разработчику.
От docker run до собственного Compose-проекта
Разберётесь, чем образ отличается от контейнера, как работает основной процесс и где искать причину остановки. Напишете Dockerfile для учебного HTTP-сервиса, настроите команды запуска, переменные окружения, порты и связь между контейнерами.
Подключите PostgreSQL, сохраните данные в томах и соберёте сервисы в Docker Compose. Проверите готовность базы через healthcheck, научитесь пересоздавать окружение и запускать несколько независимых проектов на одной машине.
Практика на типичных поломках
Контейнер сразу завершается, сервис недоступен, localhost ведёт не туда, сборка тормозит, а файлы недоступны из-за прав. Вы будете искать причины по логам, состоянию контейнера и конфигурации — и проверять, что исправление действительно сработало.
Отдельно разберёте кэш и многоэтапную сборку, registry и теги образов, секреты, ограничения CPU и памяти. Потренируетесь обновлять приложение, возвращаться к предыдущей версии и восстанавливать базу из резервной копии.
Что останется после курса
В итоговом проекте упакуете приложение с базой данных, подготовите его к запуску другим разработчиком и проверите восстановление данных. Исходники HTTP-сервиса предоставлены: основной фокус — контейнеры и окружение приложения.
Внутри — 45 уроков в 10 модулях, 71 проверочный вопрос, 6 Dockerfile-задач с автоматической проверкой на Latorn и 42 локальные лабораторные. Для работы с Docker, сетями, Compose и данными понадобится Docker Desktop или Docker Engine на вашем компьютере.
Чему научитесь
- Собирать образы из Dockerfile и управлять командами запуска и переменными окружения.
- Настраивать порты, сети и связь между контейнерами.
- Сохранять данные в томах и работать с правами на файлы.
- Запускать приложение с PostgreSQL через Docker Compose и проверять готовность сервисов.
- Находить причины сбоев по логам, состоянию контейнеров и конфигурации.
- Ускорять сборку с помощью кэша, .dockerignore и многоэтапного Dockerfile.
- Работать с registry и версиями образов, обновлять приложение и выполнять откат.
- Передавать проект другому разработчику и восстанавливать базу из резервной копии.
Для кого
- Начинающим разработчикам, которые уже знают основы программирования и Git и хотят освоить Docker.
- Разработчикам, которым нужно запускать приложение с базой данных в воспроизводимом окружении.
- Тем, кто уже пользуется Docker по инструкции и хочет самостоятельно разбираться в настройках и поломках.
Формат
- 45 уроков в 10 модулях: теория, схемы и разобранные примеры.
- 71 проверочный вопрос и 6 Dockerfile-задач с автоматической проверкой на Latorn.
- 42 локальные лабораторные: Docker, сети, Compose и данные на вашем компьютере.
- Итоговый проект: упаковка приложения с PostgreSQL, передача окружения и восстановление данных.
Что нужно на старте
- Основы любого языка программирования и Git; умение работать с файлами и терминалом.
- Компьютер с возможностью установить Docker Desktop или Docker Engine.
- Исходники учебного HTTP-сервиса предоставлены в курсе.
Автор курса
Алексей Малышкин
Разрабатываю образовательные материалы по программированию, машинному обучению и анализу данных. Темы: Python-разработка, аналитика, ML-инструменты (LangChain, vector databases, AI agents), компьютерное зрение. Стараюсь объяснять технические концепции понятно и структурировано. Ранее преподавал на Stepik и обучил более 2000 студентов. Мой профиль на Stepik - https://stepik.org/users/273781420/profile Мой телеграм для связи @alexey_latorn
Программа
01Первый контейнер4 урока
02Процессы и диагностика5 уроков
03Собственный образ5 уроков
04Сеть контейнеров4 урока
05Данные и файловая система4 урока
06Docker Compose6 уроков
07Сборка без лишней работы4 урока
08Окружение команды4 урока
09Доставка и ограничения5 уроков
Дополнительные материалы и практика
Задачи
- Dockerfile USER: запись файла с ограниченными правами
- Multi-stage Dockerfile: перенос готового артефакта — задача
- Docker ENTRYPOINT и CMD: команда и аргументы — задача
- Docker ARG и ENV: настройки при сборке и запуске — задача
- Dockerfile WORKDIR и COPY: исправление путей проекта
- Dockerfile WORKDIR, COPY и RUN: файл в новом образе
