Docker съел все свободное пространство на жестком диске! — 22 декабря 2025 г. в 19:41:54.396
Docker съел все свободное пространство на жестком диске! На прошлой неделе проводил урок по Docker на курсе по вайб-кодингу. Студенты научились упаковывать свои приложения в контейнеры, но одну важную деталь я не успел подсветить. Docker по умолчанию хранит ВСЁ: - каждую сборку образа - неиспользуемые volumes - build cache Всё это лежит мертвым грузом и жрет гигабайты. За пару месяцев экспериментов легко накапливается 30-50 ГБ мусора! Быстрое решение: docker system prune Эта команда удалит весь неиспользуемый хлам. Но это только полдела. Даже если регулярно чистить систему, Docker-образы могут быть раздутыми изначально. Вот что реально уменьшает размер: 1️⃣ Используйте alpine-образы python:3.14 весит 400+ МБ python:3.14-alpine весит 20+ МБ В 20 раз разница! А работает практически так же. 2️⃣ Объединяйте команды в RUN Каждый RUN - это новый слой в образе. Меньше слоев = меньше размер. 3️⃣ Добавьте .dockerignore Без него в образ улетают: - node_modules - .git - .env файлы - всякий мусор Это не только раздувает размер, но и может создать дыру в безопасности. 4️⃣ Multi-stage builds - это must-have Собирайте приложение в одном контейнере, а в продакшн копируйте только результат. В финальном образе нет dev-зависимостей, компилятора и прочего хлама. Итого: С такой оптимизацией образ легко сжимается с 600+ МБ до 50 МБ. Почти в 12 раз! Это значит: - быстрее CI/CD - быстрее деплой - дешевле хостинг - меньше уязвимостей А знаете, что самое приятное? Вам не нужно во всём этом разбираться. Достаточно правильно поставить задачу кодинг-агенту: Оптимизируй мой Dockerfile, используй alpine, multi-stage build и .dockerignore И он сделает всё за вас. Попробуйте в Warp.dev - он понимает контекст вашего проекта и может сразу применить изменения. А не как я - годами вручную ковырялся в Dockerfile'ах.

