Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Docker: Docker, container, image, virtualization, CI/CD

Что такое Docker?

Этот вопрос проверяет понимание Docker как платформы для контейнеризации приложений, что необходимо для обеспечения единообразия среды разработки и развёртывания.

Короткий ответ

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

Длинный ответ

Docker — это платформа с открытым исходным кодом, которая позволяет упаковывать приложения и их зависимости в стандартизированные единицы, называемые контейнерами. Контейнер обеспечивает изоляцию процесса, но, в отличие от виртуальной машины, не включает полноценную гостевую операционную систему. Вместо этого он использует ядро хостовой ОС через механизмы пространств имён и контрольных групп (cgroups) в Linux. Это делает контейнеры чрезвычайно легковесными, быстрыми в запуске и эффективными с точки зрения ресурсов.

Ключевые компоненты Docker

  • Docker Image: Неизменяемый шаблон с инструкциями для создания контейнера. Он состоит из слоёв, каждый из которых представляет изменение файловой системы.
  • Docker Container: Запущенный экземпляр образа. Контейнеры изолированы, но могут взаимодействовать через определённые сети и тома.
  • Dockerfile: Текстовый файл с инструкциями для сборки образа (например, какой базовый образ использовать, какие команды выполнить, какие файлы скопировать).
  • Docker Registry (например, Docker Hub): Хранилище для образов, откуда их можно скачивать (pull) и загружать (push).

Практическое применение и пример

Docker используется для создания согласованных сред от разработки до продакшена, что решает проблему "у меня на машине работает". Он является фундаментом для микросервисов, CI/CD пайплайнов и оркестрации (например, с Kubernetes).

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

# Используем официальный легковесный образ Node.js
FROM node:18-alpine

# Устанавливаем рабочую директорию в контейнере
WORKDIR /app

# Копируем файлы зависимостей
COPY package*.json ./

# Устанавливаем зависимости
RUN npm ci --only=production

# Копируем исходный код приложения
COPY . .

# Объявляем порт, который будет слушать приложение
EXPOSE 3000

# Команда для запуска приложения
CMD ["node", "server.js"]

Чтобы собрать образ и запустить контейнер, используются команды:

# Сборка образа с тегом 'my-app'
docker build -t my-app .

# Запуск контейнера из образа, проброс порта 3000 на хост
docker run -p 3000:3000 my-app

Вывод: Docker стоит применять, когда необходимо обеспечить переносимость и воспроизводимость приложений, быстро развёртывать сервисы, эффективно использовать ресурсы сервера или строить архитектуру на основе микросервисов.

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • Docker

    Docker

  • CI/CD

    CI/CD

Ключевые слова

#Docker

#container

#image

#virtualization

#CI/CD

Подпишись на React Developer в телеграм