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

OpenSSH на Windows: Установка сервера

OpenSSH - инструмент для безопасного удалённого доступа по протоколу SSH. Шифрует весь трафик, поддерживает аутентификацию по ключам, работает на Windows, Linux, macOS. 💡 После настройки ты сможешь подключаться к своему Windows-ПК как к обычному Linux-серверу: ssh user@192.168.1.100 Требования ОС: Windows 10 (1809+), Windows 11, Windows Server 2019/2022 Права: Администратор Сеть: Доступ к порту 22 (локально или извне) Установка (3 способа) Способ 1: PowerShell (рекомендуется) # Запусти от имени Администратора # Установить OpenSSH сервер Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # Проверить установку Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*' Способ 2: DISM (альтернатива) dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0 Способ 3: Через настройки (GUI) Настройки → Приложения → Дополнительные компоненты «Добавить компонент» → найди «OpenSSH Server» → Установить Настройка службы # Запустить от имени Администратора # Включить автозапуск sshd Set-Service -Name sshd -StartupType Automatic # Запустить службу Start-Service sshd # Проверить статус Get-Service sshd # Убедиться, что порт 22 слушается netstat -ano | findstr :22 Брандмауэр # Проверить правило для OpenSSH Get-NetFirewallRule -Name *OpenSSH-Server* | Select Name, Enabled # Если правила нет - создать New-NetFirewallRule -Name sshd ` -DisplayName 'OpenSSH Server' ` -Enabled True ` -Direction Inbound ` -Protocol TCP ` -LocalPort 22 ` -Action Allow ` -Profile Any Проверка подключения # С этого же ПК ssh localhost # С другого устройства в сети ssh <твой_пользователь>@<IP_адрес_Windows> # Пример: ssh kirill@192.168.1.100 💡 Первый вход запросит подтверждение отпечатка ключа - введи yes. ...

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