✻ Тема 4 из 10
Docker и Compose
Упаковываем «Заметки» вместе с PostgreSQL и nginx в контейнеры
О чём тема
Упаковываем «Заметки» вместе с PostgreSQL и nginx в контейнеры.
Уроки идут строго по порядку: каждый опирается только на пройденное. В каждом уроке есть практика, задание «сломай и почини» и вопросы с собеседований с разбором ответов.
Что ты сможешь после каждого урока
- 4.1 Контейнеры: процесс с изоляцией, а не виртуалка: Контейнер это обычный процесс с namespaces и cgroups, поэтому его видно с хоста и можно ограничить.
- 4.2 Dockerfile: собираем образ «Заметок»: Образ собирается слоями, порядок слоёв определяет кэш, а сервис в контейнере не должен быть root.
- 4.3 Тома и сети Docker: Данные контейнера живут в томе, а контейнеры находят друг друга по имени в своей сети.
- 4.4 SQL и PostgreSQL: запросы, индексы, EXPLAIN: Хранилище переезжает в PostgreSQL, а медленный запрос лечится индексом, который видно в EXPLAIN.
- 4.5 Compose: «Заметки» и PostgreSQL: Стек из нескольких контейнеров описывается одним compose.yml, а готовность БД проверяется healthcheck.
- 4.6 Compose: nginx и TLS перед «Заметками»: Наружу опубликованы только 80 и 443, а приложение и БД доступны лишь внутри сети Compose.
- 4.7 Образы: multi-stage, теги и реестр ghcr.io: Образ публикуется в реестр по тегу релиза и совпадает с git-тегом.
- 4.8 Безопасность образов: Trivy, Hadolint, SBOM: Образ проверяется на уязвимости и ошибки в Dockerfile, а контейнер запускается с минимумом прав.
- 4.9 Отладка контейнеров и уборка диска: Упавший контейнер разбирается по коду выхода, логам и inspect, а диск чистится осознанно.
Уроки темы
- 4.1 Контейнеры: процесс с изоляцией, а не виртуалка 2 ч
- 4.2 Dockerfile: собираем образ «Заметок» 2 ч
- 4.3 Тома и сети Docker 1.5 ч
- 4.4 SQL и PostgreSQL: запросы, индексы, EXPLAIN 2 ч
- 4.5 Compose: «Заметки» и PostgreSQL 2.5 ч
- 4.6 Compose: nginx и TLS перед «Заметками» 2 ч
- 4.7 Образы: multi-stage, теги и реестр ghcr.io 2 ч
- 4.8 Безопасность образов: Trivy, Hadolint, SBOM 2 ч
- 4.9 Отладка контейнеров и уборка диска 1.5 ч