Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
Все статьи/DevOps

Docker для разработчика: минимум который спрашивают на собесе

Что нужно знать про Docker Junior Python-разработчику: Dockerfile, docker-compose, базовые команды и типичные вопросы на собеседовании с ответами.

Константин Потапов1 апреля 2026 г.11 мин
Обложка статьи «Docker для разработчика: минимум который спрашивают на собесе»
Оглавление
  • Почему Docker стал обязательным
  • Что такое Docker (объяснение для собеса)
  • Ключевые понятия
  • Dockerfile: что нужно знать
  • Базовые команды Docker
  • docker-compose: главный инструмент разработчика
  • Частые вопросы на собесе
  • Типичные ошибки Junior
  • Чек-лист для собеседования
  • Практика

На этой странице

  • Почему Docker стал обязательным
  • Что такое Docker (объяснение для собеса)
  • Ключевые понятия
  • Dockerfile: что нужно знать
  • Базовые команды Docker
  • docker-compose: главный инструмент разработчика
  • Частые вопросы на собесе
  • Типичные ошибки Junior
  • Чек-лист для собеседования
  • Практика

Почему Docker стал обязательным

Раньше Docker был плюсом в резюме. Сейчас это базовое требование почти в каждой вакансии для разработчика. Причина простая: без Docker "работает у меня" — это отговорка, которую никто не принимает.

Junior, который умеет поднять приложение через docker-compose up, имеет реальное преимущество.


Что такое Docker (объяснение для собеса)

На собеседовании часто спрашивают: "Объясни Docker своими словами".

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

Чем отличается от виртуальной машины?

  • ВМ виртуализирует железо и запускает полноценную ОС
  • Контейнер использует ядро хостовой ОС, только изолирует процессы и файловую систему
  • Контейнер запускается за секунды, ВМ — минуты
  • Контейнер потребляет десятки мегабайт, ВМ — гигабайты

Ключевые понятия

Image (образ) — неизменяемый шаблон для создания контейнеров. Аналог класса в ООП.

Container (контейнер) — запущенный экземпляр образа. Аналог объекта.

Dockerfile — инструкции для сборки образа.

Registry — хранилище образов. Публичный: Docker Hub. Корпоративный: AWS ECR, GitLab Registry.

Volume — постоянное хранилище данных вне контейнера.

Network — виртуальная сеть для общения контейнеров.


Dockerfile: что нужно знать

Минимальный Dockerfile для FastAPI-приложения:

Почему порядок важен — вопрос на собеседовании

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

Правило: сначала всё что меняется редко, потом — код.

FROM — выбор базового образа

На собеседовании могут спросить: "Почему вы выбрали slim, а не alpine?"

Ответ: Alpine использует musl вместо glibc. Некоторые Python-пакеты (особенно с C-расширениями) не работают или требуют дополнительной сборки на Alpine. Slim — компромисс: небольшой размер без проблем совместимости.

Полный разбор написания и оптимизации Dockerfile — в темах «Создание Dockerfile» и «Оптимизация образов» курса по Docker.


Базовые команды Docker


docker-compose: главный инструмент разработчика

В реальной разработке приложение состоит из нескольких сервисов. docker-compose запускает их все одной командой.

Подробный разбор — в темах «Docker Compose» и «Хранение данных» курса.

Команды docker-compose


Частые вопросы на собесе

"Как передать переменные окружения в контейнер?"

Важно: никогда не храни секреты в Dockerfile — они попадут в образ и историю слоёв.

"Что такое volumes и зачем они нужны?"

Контейнер — эфемерен. Когда он удаляется, все данные внутри исчезают. Volume — это монтирование директории с хостовой машины (или Docker-managed storage) внутрь контейнера.

"Как контейнеры общаются между собой?"

В docker-compose все сервисы в одной сети по умолчанию. Контейнеры обращаются друг к другу по имени сервиса.

"Как работают сети Docker без docker-compose?"

Без compose сеть нужно создавать и подключать вручную:

Bridge (по умолчанию) изолирует контейнеры в собственной подсети с DNS по именам контейнеров. Host-режим (--network host) убирает изоляцию сети — контейнер использует сетевой стек хоста напрямую; так теряется изоляция портов, зато не нужен -p для проброса.

"Что такое multi-stage build?"

Multi-stage build уменьшает финальный образ — в production не нужны компиляторы и build-tools. Подробнее — в теме «Многоэтапная сборка».


Типичные ошибки Junior

1. Запуск от root

2. Секреты в образе

3. Запуск docker run вместо docker-compose

В реальных проектах всегда docker-compose — он описывает всю инфраструктуру как код.

4. Игнорирование .dockerignore

# .dockerignore .git .env __pycache__ *.pyc .venv node_modules *.log

Без .dockerignore в образ попадают тонны ненужного, включая секреты из .env.


Чек-лист для собеседования

  • Могу объяснить разницу между образом и контейнером
  • Написал Dockerfile для Python-приложения
  • Понимаю порядок инструкций и кеширование слоёв
  • Умею пользоваться docker-compose (up, down, logs, exec)
  • Знаю зачем нужны volumes
  • Понимаю как сервисы общаются по имени
  • Знаю про .dockerignore и почему он важен

Практика

Лучший способ запомнить Docker — поднять своё приложение в контейнере. Если у тебя ещё нет проекта, возьми любой учебный FastAPI-туториал и добавь Dockerfile + docker-compose.yml. Это займёт час и запомнится лучше любой статьи.

Дальше можно закрепить теорию системно:

  • Курс по Docker — от основ контейнеризации до production, security и оркестрации.
  • Тест по Docker — проверить, что из этой статьи запомнилось, вопросами с разбором.
К списку статей