Docker

Контейнеризация и деплой: от Dockerfile до выкатки на VPS через Compose

Уровень: Средний · около 5 ч · после курса: Соберёшь образ своего приложения, поднимешь его с базой через Compose и выкатишь на VPS

Чему научишься

  • Написать Dockerfile с multi-stage build
  • Уменьшить образ до < 50MB
  • Описать docker-compose для локального запуска
  • Использовать health checks
  • Понять networking и volumes
  • Деплой через GitLab CI

Уроки курса (10)

Модуль 1 · Основы Docker

Зачем контейнеры, установка и первый Dockerfile

  1. Docker: зачем он нужен и почему это не «магия контейнеров» - Контейнеры простыми словами: чтобы «у меня работает» стало «у всех работает»
  2. Установка Docker и первые команды - docker run, ps, logs - базовый набор выживания
  3. Dockerfile: собираем образ по шагам - FROM, WORKDIR, COPY, RUN, CMD - пять заклинаний

Модуль 2 · Сборка и compose

Multi-stage на Go, PHP и Python, Compose со связкой сервиса и базы

  1. Multi-stage build: образ без компилятора и мусора сборки - Собираем в builder, запускаем в slim образе - на Go, PHP и Python
  2. Дополнительно: Dockerfile для фронтенда и раздача статики через nginx - Необязательный урок: как упаковать SPA в образ и отдавать её nginx - пригодится, когда фронт деплоите вы
  3. docker-compose: поднимаем приложение вместе с базой - Один файл - и весь проект оживает
  4. Переменные окружения, volume, сети - Переменные окружения, тома и сети: где живут конфиги и данные

Модуль 3 · Production

Отладка, healthcheck, размер образа, CI и деплой на VPS

  1. Отладка: логи, exec, healthcheck, размер образа - Как чинить контейнеры, не тыкая пальцем в монитор
  2. GitLab CI: lint, test и сборка образов - Пайплайн, который делает работу за тебя: примеры для Go, PHP и Python
  3. Деплой на VPS (masterhost): docker compose на сервере - Выкатка на сервер: ssh, переменные окружения, обновление контейнеров