Что такое Docker?
Docker — инструмент, который упаковывает приложение вместе со всем окружением — кодом, зависимостями, настройками — в контейнер. Такой контейнер запускается одинаково на компьютере разработчика, на тестовом стенде и на сервере.
Docker закрывает классическую проблему «у меня локально работает». Инструкция сборки описывается в файле Dockerfile, из неё создаётся образ, а из образа — сколько угодно одинаковых контейнеров.
Практическая выгода видна сразу: новый разработчик поднимает проект одной командой вместо дня настройки, тестовое окружение точно повторяет продакшен, а обновление сводится к запуску нового образа. Для локальной работы с несколькими сервисами используют Docker Compose.
Связанные термины
Контейнер — изолированная среда, в которой приложение запускается вместе со своими зависимостями, но использует ядро операционной системы хоста. Внутри контейнера программа «видит» только собственные файлы и процессы.
KubernetesKubernetes — система оркестрации контейнеров: она сама запускает нужное количество контейнеров на группе серверов, перезапускает упавшие, распределяет нагрузку и выкатывает обновления без остановки сервиса.
DevOpsDevOps — подход к разработке, в котором создание программы и её эксплуатация объединены в один процесс: та же команда отвечает и за код, и за то, как он собирается, разворачивается и работает на серверах. Цель — выпускать изменения часто, быстро и безопасно.
CI/CDCI/CD — автоматический конвейер, через который проходит каждое изменение кода: сборка, запуск тестов и доставка готовой версии на серверы. Разработчик отправляет код в репозиторий, а всё остальное происходит без ручных действий.
MicroservicesМикросервисы — архитектурный подход, при котором приложение состоит из нескольких небольших самостоятельных сервисов. Каждый отвечает за свою область — оплату, каталог, уведомления, — разворачивается отдельно и общается с остальными через API.