Phone icon Зв'язатись з нами

DevOps та хмари

Що таке Docker?

Docker — це інструмент, який пакує застосунок разом з усім потрібним — кодом, залежностями, налаштуваннями — у контейнер. Такий контейнер однаково запускається на комп’ютері розробника, на тестовому сервері і в продакшені.

Docker розв’язує відому проблему «а в мене локально все працює». Інструкцію збірки записують у файл Dockerfile, з нього створюють образ, а з образу — будь-яку кількість однакових контейнерів.

Користь видно одразу: новий розробник запускає проєкт однією командою замість дня налаштувань, тестове середовище точно відповідає робочому, а оновлення зводиться до запуску нового образу. Щоб локально працювати з кількома сервісами, використовують Docker Compose.

Де застосовується

Розробник описує середовище у файлі, і той самий образ запускається на ноутбуці, на тестовому стенді та на робочому сервері — з однаковими версіями мови, бібліотек і системних пакетів.

Тому Docker використовують усюди: у контейнерах працюють вебсервіси, бази даних для локальної розробки, агенти збірки в CI, інструменти тестування. Для новачка це ще й простий спосіб запустити PostgreSQL чи Redis однією командою, не встановлюючи їх у систему і не розбираючись із налаштуваннями.

Приклад

У команду приходить новий розробник. Замість дня встановлення потрібних версій мови, бази та черги він клонує репозиторій і виконує одну команду — за кілька хвилин у нього працює те саме середовище, що й у всієї команди.

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Dockerfile: базовий образ, встановлення залежностей, копіювання коду і команда запуску.

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

Чим образ відрізняється від контейнера?

Образ — незмінний шаблон, зібраний за описом: файли застосунку і команда запуску. Контейнер — робочий екземпляр, створений з образу. З одного образу можна запустити скільки завгодно контейнерів, і кожен працює окремо.

Чи потрібен Docker звичайному розробнику?

Так, це давно базова навичка, а не лише інструмент DevOps. Навіть якщо ви не налаштовуєте сервери, Docker потрібен, щоб запустити локальне середовище, базу для тестів і зібрати проєкт так само, як це робить конвеєр CI.

Чи працює Docker лише на Linux?

Контейнери використовують ядро Linux, але Docker Desktop запускає їх на Windows і macOS через легку віртуальну машину. Для розробника різниці майже немає: команди ті самі, поведінка однакова. Відрізняється хіба швидкість роботи з файлами.

Docker і Kubernetes — це конкуренти?

Ні, вони розв’язують різні задачі. Docker створює і запускає контейнери, а Kubernetes керує багатьма контейнерами на групі серверів: розподіляє навантаження, перезапускає ті, що впали, випускає оновлення. Kubernetes працює з контейнерами, які зазвичай зібрані в Docker.

Навчання DevOps в OWU

Опануйте професію DevOps-інженера на практичних курсах із менторами та реальними проєктами.

Обрати курс