Что такое Docker?

Docker — это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковать приложение со всеми его зависимостями в стандартизированный unit.

Преимущества Docker

  • Консистентность окружения - одинаковое поведение на всех системах
  • Изоляция - приложения не конфликтуют между собой
  • Портативность - работает везде, где есть Docker
  • Эффективность - меньше ресурсов чем виртуальные машины

Основные команды Docker

Работа с образами

docker pull nginx:latest - скачать образ
docker images - список образов
docker rmi IMAGE_ID - удалить образ

Работа с контейнерами

docker run -d -p 80:80 nginx - запустить контейнер
docker ps - список запущенных контейнеров
docker stop CONTAINER_ID - остановить контейнер
docker logs CONTAINER_ID - посмотреть логи

Dockerfile - создание своих образов

Пример простого Dockerfile для Node.js приложения:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Docker Compose для многоконтейнерных приложений

Docker Compose позволяет управлять несколькими контейнерами через YAML файл. Идеально для разработки с базами данных, кэшем и другими сервисами.

Лучшие практики

  • Используйте .dockerignore для исключения ненужных файлов
  • Минимизируйте количество слоев в Dockerfile
  • Используйте официальные базовые образы
  • Запускайте один процесс на контейнер

Заключение

Docker значительно упрощает процесс разработки и деплоя приложений. Освоив базовые концепции, вы сможете создавать воспроизводимые и масштабируемые среды разработки.