Погнали! Выбираешь образ для своего контейнера — казалось бы, что тут сложного?
ubuntu:latest, node:alpine, python:3.11 — звучит знакомо, да? Но на проде каждая мелочь имеет значение.🧩 Вот чеклист, как выбрать правильный образ:
1. Минимализм решает
- Меньше образ — меньше поверхность атаки.
-
alpine, distroless, scratch — отличные кандидаты.- Но не забывай: в
alpine может не быть нужной тебе библиотеки. Проверь заранее.2. Понимание зависимостей
- Не ставь лишнего. Не нужен тебе
curl, vim, gcc — не ставь.- Чем меньше зависимостей, тем проще отлаживать, меньше шансов на уязвимости.
3. Только стабильные теги
- Никогда не используй
latest в продакшене.- Всегда указывай конкретную версию:
python:3.11.3, node:18.16.0.4. Сканируй образы
- Используй
trivy, grype, dockle.- Встроенные инструменты в CI — мастхэв.
5. Собирай свои образы
- Не бойся билдить свои минимальные образы на базе
scratch или distroless.- Так ты точно знаешь, что внутри.
💡 Микро-лайфхак: если тебе нужно просто что-то запустить в минималистичном окружении — посмотри на
busybox. Это магия.Контейнеры — это не просто “запустить что-то”. Это часть твоей безопасности, скорости и стабильности.
Подпишись 👉@devopslib