Размер Docker-образа - это не косметика.
Он напрямую влияет на:
- скорость CI/CD
- время деплоя
- cold start контейнеров
- расходы на storage и трафик
В примере ниже образ удалось сократить с 588 MB до 47.7 MB - почти на 92%.
Вот какие приёмы реально дают эффект.
1) Выбор базового образа - самое важное решение
Полный python:3.9 тянет за собой:
- лишние системные утилиты
- документацию
- dev-пакеты
Переход на python:3.9-alpine:
- в разы меньше размер
- быстрее скачивание
- меньше attack surface
Это первый и самый крупный выигрыш.
2) Оптимизация слоёв Docker
Каждый RUN, COPY, ADD - это новый слой.
Много мелких инструкций = раздув образа.
Правило:
- объединяй связанные команды
- удаляй временные файлы в том же RUN
Меньше слоёв - меньше вес - быстрее сборка.
3) .dockerignore - бесплатная оптимизация, которую часто забывают
Без .dockerignore в build context улетает всё:
- .venv
- .cache
- .git
- временные файлы
Это:
- увеличивает размер контекста
- замедляет сборку
- иногда ломает кеширование
.dockerignore должен быть всегда. Без исключений.
4) Multi-stage build - must-have для продакшена
Одна из самых мощных техник.
Идея простая:
- stage 1 - сборка, компиляция, зависимости
- stage 2 - только то, что нужно для запуска
В финальном образе:
- нет build-инструментов
- нет лишних библиотек
- только runtime
Результат:
- меньше размер
- меньше уязвимостей
- быстрее старт
Итоговый эффект:
- 588 MB -> 47.7 MB
- −91.89% размера
- быстрее CI
- быстрее деплой
- дешевле инфраструктура
Главный вывод:
маленькие оптимизации накапливаются.
Каждый сэкономленный мегабайт:
- ускоряет каждый pull
- ускоряет каждый deploy
- масштабируется вместе с вашей системой
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤12🔥4😁4
📌 Подробная шпаргалка по командам Docker
Удобный и практичный референс для повседневной работы с Docker: образы, контейнеры, сети, тома и Docker Compose.
🐋 Общие команды Docker
-
-
-
-
📦 Работа с образами
-
-
-
-
-
-
-
🚀 Контейнеры: запуск и управление
-
-
-
-
-
-
-
-
-
-
-
-
-
🧹 Очистка и обслуживание
-
-
-
-
-
-
-
📊 Мониторинг и отладка
-
-
-
🌐 Сети Docker
-
-
-
-
💾 Docker Volumes
-
-
-
-
⚙️ Docker Compose
-
-
-
-
-
-
-
-
🧠 Полезные советы
- Используй
- Проверяй размер Docker-данных через
- Для отладки всегда полезен
- Регулярно чисти систему, чтобы Docker не съел весь диск
Эта шпаргалка закрывает 90% повседневных задач при работе с Docker - от локальной разработки до продакшена.
@pythonl
Удобный и практичный референс для повседневной работы с Docker: образы, контейнеры, сети, тома и Docker Compose.
🐋 Общие команды Docker
-
docker --version — версия Docker-
docker info — информация о системе Docker-
docker help — список доступных команд-
docker <command> --help — помощь по конкретной команде📦 Работа с образами
-
docker pull <image> — скачать образ из реестра-
docker images — список локальных образов-
docker build -t name:tag . — собрать образ из Dockerfile-
docker tag <image> <repo>:<tag> — назначить тег образу-
docker rmi <image> — удалить образ-
docker image prune — удалить неиспользуемые образы-
docker image prune -a — удалить все неиспользуемые, включая невисячие🚀 Контейнеры: запуск и управление
-
docker run <image> — запустить контейнер-
docker run -d <image> — запуск в фоне-
docker run -it <image> bash — интерактивный режим-
docker ps — активные контейнеры-
docker ps -a — все контейнеры-
docker stop <container> — остановить контейнер-
docker start <container> — запустить остановленный-
docker restart <container> — перезапуск-
docker rm <container> — удалить контейнер-
docker rm -f <container> — принудительно удалить-
docker logs <container> — логи контейнера-
docker exec -it <container> bash — войти внутрь контейнера-
docker inspect <container> — подробная информация (JSON)🧹 Очистка и обслуживание
-
docker container prune — удалить все остановленные контейнеры-
docker image prune — удалить неиспользуемые образы-
docker volume prune — удалить неиспользуемые тома-
docker network prune — удалить неиспользуемые сети-
docker system prune — очистить всё неиспользуемое-
docker system prune -a — максимально агрессивная очистка-
docker system df — использование диска Docker’ом📊 Мониторинг и отладка
-
docker stats — использование CPU и памяти контейнерами-
docker top <container> — процессы внутри контейнера-
docker diff <container> — изменения файловой системы контейнера🌐 Сети Docker
-
docker network ls — список сетей-
docker network inspect <network> — информация о сети-
docker network create <name> — создать сеть-
docker network rm <name> — удалить сеть💾 Docker Volumes
-
docker volume ls — список томов-
docker volume inspect <volume> — информация о томе-
docker volume create <name> — создать том-
docker volume rm <name> — удалить том⚙️ Docker Compose
-
docker compose up — запустить сервисы-
docker compose up -d — запуск в фоне-
docker compose down — остановить и удалить всё-
docker compose build — пересобрать образы-
docker compose pull — скачать образы-
docker compose logs — логи всех сервисов-
docker compose ps — статус сервисов-
docker compose restart — перезапуск🧠 Полезные советы
- Используй
--rm, чтобы контейнер удалялся после выполнения- Проверяй размер Docker-данных через
docker system df- Для отладки всегда полезен
docker inspect- Регулярно чисти систему, чтобы Docker не съел весь диск
Эта шпаргалка закрывает 90% повседневных задач при работе с Docker - от локальной разработки до продакшена.
@pythonl
❤20🔥6👍5
🚀 Интерактивный помощник для Кодинга Mistral Vibe
Mistral Vibe - это командный интерфейс для взаимодействия с кодом, который позволяет использовать естественный язык для выполнения задач.
Он предлагает мощные инструменты для работы с файлами, поиска кода и управления версиями, обеспечивая удобный и интуитивный опыт.
🚀 Основные моменты:
- Интерактивный чат с AI для выполнения запросов.
- Набор инструментов для манипуляции файлами и выполнения команд.
- Автоматическое сканирование структуры проекта для контекстной информации.
- Высокая настраиваемость через конфигурационные файлы.
- Поддержка UNIX и Windows.
📌 GitHub: https://github.com/mistralai/mistral-vibe
@pythonl
Mistral Vibe - это командный интерфейс для взаимодействия с кодом, который позволяет использовать естественный язык для выполнения задач.
Он предлагает мощные инструменты для работы с файлами, поиска кода и управления версиями, обеспечивая удобный и интуитивный опыт.
🚀 Основные моменты:
- Интерактивный чат с AI для выполнения запросов.
- Набор инструментов для манипуляции файлами и выполнения команд.
- Автоматическое сканирование структуры проекта для контекстной информации.
- Высокая настраиваемость через конфигурационные файлы.
- Поддержка UNIX и Windows.
📌 GitHub: https://github.com/mistralai/mistral-vibe
@pythonl
GitHub
GitHub - mistralai/mistral-vibe: Minimal CLI coding agent by Mistral
Minimal CLI coding agent by Mistral. Contribute to mistralai/mistral-vibe development by creating an account on GitHub.
🔥4👍1
🖼️✨ Qwen-Image-Layered: Модель для многослойной обработки изображений
Qwen-Image-Layered позволяет разбирать изображения на несколько RGBA слоев, обеспечивая возможность редактирования каждого слоя независимо. Это открывает новые горизонты для редактирования, позволяя выполнять операции с высоким качеством, такие как изменение размера и перекраска, без влияния на другие элементы.
🚀Основные моменты:
- Декомпозиция изображений на независимые слои.
- Поддержка высококачественного редактирования.
- Гибкость в количестве слоев для декомпозиции.
- Возможность редактирования с сохранением целостности других слоев.
- Интуитивно понятный интерфейс для работы с изображениями.
📌 GitHub: https://github.com/QwenLM/Qwen-Image-Layered
#python
Qwen-Image-Layered позволяет разбирать изображения на несколько RGBA слоев, обеспечивая возможность редактирования каждого слоя независимо. Это открывает новые горизонты для редактирования, позволяя выполнять операции с высоким качеством, такие как изменение размера и перекраска, без влияния на другие элементы.
🚀Основные моменты:
- Декомпозиция изображений на независимые слои.
- Поддержка высококачественного редактирования.
- Гибкость в количестве слоев для декомпозиции.
- Возможность редактирования с сохранением целостности других слоев.
- Интуитивно понятный интерфейс для работы с изображениями.
📌 GitHub: https://github.com/QwenLM/Qwen-Image-Layered
#python
❤3🤩2👍1
Forwarded from Kremniy;
Roadmap по Python
Привет! По немногочисленным просьбам, решив, что давно не радовал вас чем-то полезным, а только прогревал на стартапы и YouTube, посоветовавшись со знакомым питонистом, я подготовил Roadmap по Python — аналогичный моему Roadmap'у по Go. Я разместил его под Go-шным roadmap'ом. Всем, кому актуально, прошу посмотреть и написать свои правки, идеи, предложения!
Go & Python Roadmap 2025😎
Реклама. Дмитриев А.С. ИНН 501214283070. erid: 2W5zFHbfpL8
Привет! По немногочисленным просьбам, решив, что давно не радовал вас чем-то полезным, а только прогревал на стартапы и YouTube, посоветовавшись со знакомым питонистом, я подготовил Roadmap по Python — аналогичный моему Roadmap'у по Go. Я разместил его под Go-шным roadmap'ом. Всем, кому актуально, прошу посмотреть и написать свои правки, идеи, предложения!
Go & Python Roadmap 2025
Реклама. Дмитриев А.С. ИНН 501214283070. erid: 2W5zFHbfpL8
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥2😁1
python-injection - это репозиторий с наглядными примерами инъекций и небезопасных паттернов в Python-коде, которые регулярно встречаются в реальных проектах.
Проект показывает, как «обычный» Python-код превращается в уязвимость, если не понимать, как именно работают интерпретатор, библиотеки и внешние вызовы.
Что внутри:
- Command Injection через os.system, subprocess, shell=True
- SQL Injection при неправильной работе с запросами
- Code Injection через eval, exec, pickle
- Path Traversal и небезопасная работа с файлами
- Template Injection
- Примеры небезопасной десериализации
- Реальные анти-паттерны из production-кода
Главная ценность репозитория — код, а не теория:
- есть уязвимый пример
- есть объяснение, почему он опасен
- понятно, как именно происходит атака
Подходит для:
- Python-разработчиков
- backend-инженеров
- security-энтузиастов
- code review и обучения безопасному программированию
Если ты пишешь Python и думаешь, что «у нас же не веб» - этот репозиторий стоит открыть.
pip install python-injectionhttps://github.com/100nm/python-injection
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4❤2