Docker та контейнеризація

Контейнери, Dockerfile, Compose, образи та мережі — перевірте знання Docker та контейнеризації. Для розробників і DevOps.

8-10 хв 20 питань Docker

Docker: контейнеризація додатків

Docker пакує додаток з усіма залежностями у легкий контейнер, що однаково працює на будь-якій машині. Контейнер ізолює процес, але ділить ядро ОС з хостом -- на відміну від віртуальних машин, які запускають повну ОС. Docker Hub -- реєстр готових образів: Node.js, Python, PostgreSQL, Nginx. Dockerfile описує як побудувати образ. Docker Compose оркеструє кілька контейнерів для складних додатків.

Команда Дія
docker build -t name .Побудувати образ з Dockerfile
docker run -p 3000:3000 nameЗапустити контейнер з прокиданням порту
docker psСписок запущених контейнерів
docker stop / rmЗупинити / видалити контейнер
docker imagesСписок локальних образів
docker compose up -dЗапустити всі сервіси у фоні
docker exec -it container bashЗайти всередину контейнера

Dockerfile: FROM, COPY, RUN, CMD

Dockerfile -- інструкція для побудови образу. FROM визначає базовий образ (node:20-alpine). WORKDIR встановлює робочу директорію. COPY переносить файли з хоста в контейнер. RUN виконує команди при побудові (npm install). EXPOSE документує порт. CMD -- команда при запуску контейнера. Кожна інструкція створює шар (layer), що кешується -- порядок важливий для швидкості збірки. Multi-stage builds дозволяють збирати у повному образі, а результат копіювати у мінімальний.

Volumes та мережі

  • Volume -- персистентне зберігання даних
  • Bind mount -- файли хоста в контейнері
  • Bridge network -- зв\'язок між контейнерами
  • -v host:container -- монтування при запуску

Оптимізація образу

  • Alpine -- мінімальний базовий образ (5 МБ)
  • Multi-stage -- збірка + мінімальний результат
  • .dockerignore -- виключити зайві файли
  • Кешування шарів -- COPY package*.json перед кодом

Docker Compose та Kubernetes

Docker Compose (docker-compose.yml) описує багатоконтейнерний додаток: веб-сервер, база даних, кеш. Один файл визначає сервіси, порти, volumes, змінні оточення та залежності (depends_on). docker compose up -d запускає весь стек. Kubernetes -- оркестратор для продакшену: автомасштабування, self-healing, rolling updates, балансування навантаження. Docker для розробки та простих деплоїв, Kubernetes для масштабних систем.

Про тест

Тест «Docker та контейнеризація» містить 20 питань про Dockerfile, контейнери vs VM, docker commands, volumes, мережі, Docker Compose, оптимізацію образів та Kubernetes.

Часті питання

Корисні матеріали

Статті з психології та нові тести — раз на тиждень