Как происходит знакомство с Docker
Что проверяют
Вопрос звучит как бытовой, но проверяют практику: собирали ли вы образы сами или только запускали чужой docker compose up. Следом обычно просят рассказать, как устроен ваш Dockerfile и почему слои идут в таком порядке.
Как отвечать
Это вопрос про ваш опыт, поэтому стройте ответ на своём проекте: зачем понадобился Docker, что сделали вы лично, что получилось. Цифры берите только свои. Каркас для Python-разработчика:
- образ и контейнер: образ это неизменяемый набор слоёв, контейнер это запущенный из него процесс со своим слоем записи. Данные, которые должны пережить пересоздание контейнера, живут в volume;
- Dockerfile: базовый
python:3.x-slim, сначала копируются файлы зависимостей и ставятся черезpip install --no-cache-dirилиuv, и только потом код. Тогда правка кода не пересобирает слой с зависимостями; - multi-stage: сборка колёс в первой стадии, в финальный образ идут только результаты, без компиляторов;
- гигиена:
.dockerignore, запуск не от root,PYTHONUNBUFFERED=1, чтобы логи не застревали в буфере, секреты через переменные окружения, а не в образе; - compose: локальный стек из приложения, Postgres и Redis,
healthcheckиdepends_onс условием готовности базы. Команда сейчасdocker compose(плагин v2), старыйdocker-composeбольше не поддерживается; - CI: образ собирается в конвейере, проходит тесты, и этот же образ уходит на деплой.
Если опыта немного, так и скажите: например, поднимали сервисы через compose и писали простой Dockerfile. Потом покажите, что понимаете механику слоёв и кэша. Честное «работал на уровне compose, вот что понимаю» звучит лучше пересказа документации.
Где спотыкаются
Путают образ и контейнер или считают контейнер лёгкой виртуальной машиной. Контейнер это процесс, изолированный через namespaces и cgroups на ядре хоста.
Берут alpine ради размера. Для Python это часто проигрыш: musl вместо glibc, часть пакетов собирается из исходников, сборка идёт дольше, а итоговый образ бывает не меньше slim.
Называют красивые проценты вроде «ускорили настройку окружения вдвое», а на вопрос, как это мерили, ответа нет.