Skip to main content

Зачем Docker в DevOps

Контейнеры дают единый формат упаковки приложения и зависимостей. Один образ работает на ноутбуке, в CI и в облаке. Docker — базовый инструмент; Kubernetes потом запускает эти же образы в кластере.

Ключевые темы

  • Образ vs контейнер; слои и кэш
  • docker pull, docker run, docker ps, docker logs, docker exec
  • Остановка и удаление: stop, rm, rmi, prune
  • FROM, WORKDIR, COPY, RUN, CMD, ENTRYPOINT
  • Многостадийная сборка (multi-stage) для меньшего образа
  • Best practices: минимальный базовый образ, один процесс на контейнер
  • Сети: bridge, host; docker network
  • Тома и bind mount: персистентные данные
  • docker-compose.yml: сервисы, порты, volumes, сети
  • up, down, logs, использование в разработке и тестах
  • Push/pull в Docker Hub, GitLab Registry, ECR, GCR
  • Теги: latest, семантические версии

Пример минимального Dockerfile

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "index.js"]

Что добавить сюда

  • Свои Dockerfile для типовых стеков (Node, Python, Go)
  • Примеры docker-compose для локальной разработки
  • Ссылки на официальную доку и Docker Best Practices