Sobes.tech
Назад к вопросам
Senior
7

Расскажи про Docker: основные принципы работы, multistage builds, команды CLI

Компании, где спрашивали
СБК ПАРУС

Ответ от нейросети

sobes.tech AI

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

Основные принципы работы:

  • Контейнеры используют образы (images), которые содержат всё необходимое для запуска приложения.
  • Образы строятся слоями, что позволяет эффективно использовать дисковое пространство.
  • Контейнеры изолированы друг от друга и от хоста, но при этом легковесны по сравнению с виртуальными машинами.

Multistage builds: Позволяют создавать несколько этапов сборки в одном Dockerfile, что помогает уменьшить размер итогового образа. Например, на первом этапе собирается приложение с инструментами разработки, а на втором — копируются только необходимые артефакты в минимальный образ.

FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

FROM alpine:latest
COPY --from=builder /app/myapp /myapp
CMD ["/myapp"]

Основные команды CLI:

  • docker build — сборка образа из Dockerfile.
  • docker run — запуск контейнера из образа.
  • docker ps — просмотр запущенных контейнеров.
  • docker images — просмотр локальных образов.
  • docker stop и docker rm — остановка и удаление контейнеров.
  • docker pull и docker push — загрузка и выгрузка образов в/из реестра.

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