Ответ
Docker — это платформа для контейнеризации, которая упаковывает приложение со всеми его зависимостями в стандартизированный изолированный контейнер.
Ключевые преимущества:
- Консистентность окружения: Код работает одинаково на любой системе с Docker (разработка, тестирование, продакшен).
- Изоляция: Контейнеры не влияют друг на друга и на хост-систему, повышая безопасность и стабильность.
- Эффективность ресурсов: Контейнеры используют ядро ОС хоста, запускаясь быстрее и легче виртуальных машин.
- Портативность и масштабируемость: Легко переносить, развертывать и масштабировать приложения.
- Упрощение CI/CD: Стандартизированные образы упрощают процессы сборки, тестирования и развертывания.
Пример Dockerfile для Java-приложения:
FROM openjdk:17-alpine
WORKDIR /app
COPY target/my-app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
Базовые команды:
# Сборка образа
docker build -t my-app:1.0 .
# Запуск контейнера
docker run -d -p 8080:8080 --name my-app-container my-app:1.0