Docker WSL: Очистка и оптимизация дисков

Docker Desktop на Windows использует WSL2 с динамическими VHDX-файлами. Они растут, когда добавляются образы/контейнеры, но не сжимаются автоматически при удалении. Результат: диск C: заполняется, хотя docker system df показывает свободное место. 💡 Решение: ручная оптимизация VHDX через PowerShell + утилита Docker. 📦 Скрипт очистки Создание файла # Файл: $HOME\Scripts\docker-clear-wsl.ps1 $script = @' $LOCAL = "$env:LOCALAPPDATA\Docker\wsl" $VHD1 = Join-Path $LOCAL "disk\docker_data.vhdx" $VHD2 = Join-Path $LOCAL "main\ext4.vhdx" # 1. Очистка Docker docker system prune -f # 2. Возврат места через официальный инструмент docker run --rm --privileged --pid=host docker/desktop-reclaim-space docker rmi docker/desktop-reclaim-space -f # 3. Остановка Docker Desktop Get-Process -Name "Docker Desktop","com.docker.backend","com.docker.build" ` -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue # 4. Выключение WSL wsl --shutdown # 5. Оптимизация VHDX-файлов (сжатие) if (Test-Path $VHD1) { Optimize-VHD -Path $VHD1 -Mode Full } if (Test-Path $VHD2) { Optimize-VHD -Path $VHD2 -Mode Full } # 6. Запуск Docker Desktop Start-Sleep -Seconds 2 Start-Process -FilePath "$env:ProgramFiles\Docker\Docker\Docker Desktop.exe" ` -ErrorAction SilentlyContinue '@ $script | Out-File -FilePath "$HOME\Scripts\docker-clear-wsl.ps1" -Encoding UTF8 Запуск # От имени Администратора (требуется для Optimize-VHD) powershell.exe -ExecutionPolicy Bypass -File "$HOME\Scripts\docker-clear-wsl.ps1" 🔍 Как это работает Шаг Команда Что делает 1 docker system prune -f Удаляет остановленные контейнеры, неиспользуемые образы, кэш 2 docker/desktop-reclaim-space Официальный инструмент Docker для возврата места в WSL2 3 Stop-Process Корректно останавливает Docker Desktop (иначе VHDX заблокирован) 4 wsl --shutdown Полностью выключает WSL, освобождая файлы для оптимизации 5 Optimize-VHD -Mode Full Сжимает VHDX-файлы, возвращая место на хосте 6 Start-Process Запускает Docker Desktop обратно Почему именно так: ...

17 мар. 2026 · 3 минуты · 614 слов · Potato Energy Team, ponfertato

Docker: Автоматическое выключение по расписанию

Для домашних серверов и тестовых сред актуальна задача экономии ресурсов: ночью или в нерабочее время контейнеры можно останавливать, а систему - выключать. Это руководство описывает безопасный метод с сохранением состояния и автоматическим восстановлением. 💡 Метод подходит для OrangePI, Raspberry Pi, старых ПК и любых систем, где важна экономия энергии. 📦 Скрипт остановки контейнеров и выключения Создание скрипта # Файл: /usr/local/bin/stop_containers_and_shutdown.sh cat > /usr/local/bin/stop_containers_and_shutdown.sh << 'EOF' #!/bin/bash # # Скрипт сохраняет ID запущенных контейнеров, # останавливает их и инициирует завершение работы системы. # CONTAINERS_FILE="/etc/active_containers.txt" echo "=== $(date '+%Y-%m-%d %H:%M:%S') ===" echo "Запуск скрипта остановки контейнеров и выключения системы" # Получаем список запущенных контейнеров (по ID) RUNNING_CONTAINERS=$(docker ps -q) if [ -n "${RUNNING_CONTAINERS}" ]; then echo "Сохранение списка запущенных контейнеров в ${CONTAINERS_FILE}" echo "${RUNNING_CONTAINERS}" > "${CONTAINERS_FILE}" docker stop ${RUNNING_CONTAINERS} echo "Контейнеры остановлены." else echo "Нет запущенных контейнеров." [ -f "${CONTAINERS_FILE}" ] && rm -f "${CONTAINERS_FILE}" fi sleep 10 echo "Завершение работы системы." /sbin/shutdown -h now EOF Сделать исполняемым chmod +x /usr/local/bin/stop_containers_and_shutdown.sh Как работает Шаг Описание docker ps -q Получает ID всех запущенных контейнеров > /etc/active_containers.txt Сохраняет список для восстановления docker stop Корректно останавливает контейнеры (SIGTERM) sleep 10 Даёт время на завершение операций shutdown -h now Выключает систему Почему так: ...

17 мар. 2026 · 5 минут · 858 слов · Potato Energy Team, ponfertato

Docker Volumes: Бэкап и миграция

Docker Volumes хранят данные независимо от контейнеров, но требуют отдельного подхода к резервному копированию. Это руководство описывает универсальные методы работы с volumes на примере популярных сервисов. 💡 Заменяйте имена volumes на свои. Методы работают с любыми контейнерами. 📦 Бэкап volumes Через docker-volume-backup (рекомендуется) docker run --rm \ -v portainer_data:/backup/portainer_data \ -v postgres_data:/backup/postgres_data \ -v redis_data:/backup/redis_data \ -v /opt/docker/backup:/archive \ --entrypoint backup \ offen/docker-volume-backup:v2 Параметры: Параметр Описание -v <volume>:/backup/<name> Маппинг volume в директорию бэкапа -v /opt/docker/backup:/archive Куда сохранять архив на хосте --entrypoint backup Запускает режим бэкапа --rm Удаляет контейнер после завершения Почему этот метод: ...

16 мар. 2026 · 4 минуты · 667 слов · Potato Energy Team, ponfertato

GPT4Free в 2026: Полный гайд по бесплатному доступу к GPT-5, DeepSeek и Gemini

GPT4Free (g4f) - бесплатный инструмент, который даёт доступ к мощным нейросетям: GPT-4/5, Claude, Gemini, DeepSeek. Работает через обратную инженерию публичных интерфейсов. ⚠️ Важно: Только для обучения и тестов. Может нарушать правила некоторых сервисов. Установка за 2 минуты Что нужно Компьютер с интернетом Python 3.10+ (поставьте галочку “Add to PATH” при установке) Команда установки pip install -U g4f[all] Готово. Библиотека установлена. Запуск Вариант 1: Веб-интерфейс (как чат в браузере) python -m g4f.cli gui --port 8080 Откройте в браузере: http://localhost:8080/chat/ ...

16 мар. 2026 · 2 минуты · 1 слово · Potato Energy Team, ponfertato

WSL2: Полный гайд для разработчика

WSL (Windows Subsystem for Linux) - подсистема для запуска нативных Linux-приложений прямо в Windows. Без виртуальной машины, без двойной загрузки. WSL1 - трансляция системных вызовов (быстро, но не 100% совместимо) WSL2 - полноценное ядро Linux в лёгкой виртуализации (полная совместимость, чуть больше ресурсов) 💡 Используй WSL2. Почти без накладных расходов, но с полной поддержкой Docker, systemd и всех фич Linux. Требования ОС: Windows 10 (2004+, сборка 19041+) или Windows 11 Архитектура: x64 или ARM64 Права: Администратор (для установки) Виртуализация: Включена в BIOS/UEFI (Hyper-V Platform) Проверить виртуализацию: ...

16 мар. 2026 · 4 минуты · 834 слова · Potato Energy Team, ponfertato