Приложение запустил, с томами ещё разбираюсь. В целом понравилось.

Docker и Docker Compose: контейнеризация приложений
Практический курс Docker для разработчиков: упакуйте своё приложение, подключите PostgreSQL и запускайте окружение через Compose. Научитесь находить поломки, обновлять сервис и восстанавливать данные. 6 Dockerfile-задач с автопроверкой и 42 локальные лабораторные.
- 10 модулей
- 45 уроков
- 77 заданий с проверкой
- ≈ 48 часов обучения
Практика в браузере
Пишите и запускайте код прямо в уроке — редактор уже настроен. Ничего устанавливать не нужно.
Именной сертификат
После прохождения курса добавьте сертификат в резюме или портфолио. Работодатель сможет проверить его по ссылке.
О курсе
Запускайте приложение с базой одной командой и передавайте его коллегам вместе с окружением. На этом практическом курсе Docker для разработчиков вы соберёте образы и Compose-проект с PostgreSQL, научитесь искать причины сбоев, обновлять сервис и восстанавливать его данные. Для старта нужны основы программирования, Git и терминала.
От 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 уроков
Отзывы
2 отзываНаконец понял, почему приложение не видело базу. Раньше просто менял настройки наугад.
Дополнительные материалы и практика
Задачи
- Docker Compose run или exec для инициализации
- Docker ExitCode 137: достаточно ли этого для вывода об OOM
- Docker Up: почему работающий контейнер ещё не готовый сервис
- Откат Docker-образа: сохранятся ли записи в базе
- SIGTERM и SIGKILL: корректная остановка контейнера
- Docker build cache: изменение кода и requirements.txt
- Docker unhealthy при restart always: будет ли перезапуск
- Docker push: почему образ отправляется в Docker Hub
- Docker Client работает, но daemon недоступен
- Docker: закрепить образ по digest вместо тега
- Dockerfile USER: запись файла с ограниченными правами
- Docker Compose: порт хоста и порт сервиса внутри сети
- Multi-stage Dockerfile: перенос готового артефакта — задача
- Docker Compose: почему не подставился пароль из env
- Docker Compose: имя проекта и имя тома
- Docker: приложение слушает 127.0.0.1 внутри контейнера
- Docker Compose override: объединение command
- Docker ENTRYPOINT и CMD: команда и аргументы — задача
- Docker: контейнер завершился после успешного init
- Docker ARG и ENV: настройки при сборке и запуске — задача
- Docker build: как передать секрет при сборке
- Резервная копия PostgreSQL в Docker: копирование работающей базы
- Локальный Docker registry: tag, push и Compose image
- Docker --user: UID и GID процесса в контейнере
- Dockerfile WORKDIR и COPY: исправление путей проекта
- Docker readonly и tmpfs: куда писать временные файлы
- Docker Compose down: сохраняются ли данные тома
- Docker multi-stage: какие файлы попадут в финальный образ
- Docker Compose exec -T для бинарного pgdump
- PostgreSQL в Docker: нет пароля при первом запуске
- Dockerfile WORKDIR, COPY и RUN: файл в новом образе
- Docker COPY перед pip install: почему сбрасывается кэш
Уроки
Статьи
- Docker для разработчика: разборы запуска и хранения данных
- После обновления образа Dockerfile кладёт файлы не туда: проверяем WORKDIR
- Bind mount в удалённом Docker: почему демон не видит каталог с ноутбука
- Первая запись в файл Docker-образа медленная: разбираем OverlayFS copy-up
- Приложение в Docker зависает при записи логов: проверяем logging backpressure
- Docker тормозит при свободном CPU: проверяем квоту контейнера
