본문 바로가기

개발 & IT/개발 라이프 & 팁

Windows SSD 용량 부족 해결 — Docker vhdx, WSL 다른 드라이브로 이전하기

vhdx 위치 확인

개발 환경에서 C: SSD 용량을 잡아먹는 주범은 대부분 DockerWSL의 가상 디스크 파일(.vhdx)이다.

Docker vhdx 위치 확인

(Get-ChildItem "C:\Users\$env:USERNAME\AppData\Local\Docker" -Recurse -Filter "*.vhdx" -ErrorAction SilentlyContinue).FullName

WSL vhdx 위치 확인

(Get-ChildItem "C:\Users\$env:USERNAME\AppData\Local\Packages" -Recurse -Filter "*.vhdx" -ErrorAction SilentlyContinue).FullName

용량 확인:

Get-Item "C:\Users\$env:USERNAME\AppData\Local\Docker\wsl\disk\docker_data.vhdx", `
         "C:\Users\$env:USERNAME\AppData\Local\Docker\wsl\main\ext4.vhdx" | 
Select-Object Name, @{N='Size(GB)';E={[math]::Round($_.Length/1GB,2)}}

Docker vhdx 이전

심볼릭 링크를 활용해서 Docker가 원래 경로를 그대로 참조하면서, 실제 파일은 다른 드라이브에 저장하는 방식이다.

Step 1. Docker Desktop 완전 종료

트레이 아이콘 우클릭 → Quit Docker Desktop

Step 2. 이동할 폴더 생성

mkdir D:\Docker\wsl\disk
mkdir D:\Docker\wsl\main

Step 3. vhdx 파일 이동

Move-Item "C:\Users\$env:USERNAME\AppData\Local\Docker\wsl\disk\docker_data.vhdx" "D:\Docker\wsl\disk\"
Move-Item "C:\Users\$env:USERNAME\AppData\Local\Docker\wsl\main\ext4.vhdx" "D:\Docker\wsl\main\"

Step 4. 심볼릭 링크 생성 (관리자 PowerShell 필요)

시작 메뉴에서 PowerShell 우클릭 → 관리자로 실행

New-Item -ItemType SymbolicLink `
  -Path "C:\Users\$env:USERNAME\AppData\Local\Docker\wsl\disk\docker_data.vhdx" `
  -Target "D:\Docker\wsl\disk\docker_data.vhdx"

New-Item -ItemType SymbolicLink `
  -Path "C:\Users\$env:USERNAME\AppData\Local\Docker\wsl\main\ext4.vhdx" `
  -Target "D:\Docker\wsl\main\ext4.vhdx"

Step 5. Docker Desktop 재실행 및 동작 확인

정상적으로 컨테이너가 뜨면 완료.


WSL 이전

WSL은 심볼릭 링크 방식 대신 export/import로 이전한다.

작업 전 중요한 코드는 반드시 git push 해두자.

Step 1. 현재 배포판 확인

wsl --list --verbose

Step 2. 내보내기

wsl --export Ubuntu D:\wsl\ubuntu-backup.tar

Step 3. 기존 배포판 삭제

wsl --unregister Ubuntu

Step 4. 새 경로에 등록

wsl --import Ubuntu D:\wsl\Ubuntu D:\wsl\ubuntu-backup.tar

결과 확인

Get-PSDrive C | Select-Object Used, Free

Docker vhdx(37GB) 이전 기준으로 작업 전 54GB → 작업 후 94GB 여유 확보. SSD 여유 공간이 늘어나는 것만으로도 체감 속도가 눈에 띄게 개선된다.

반응형