Docker 용량이 계속 늘어나는 이유? docker_data.vhdx 개념부터 정리합니다 (Windows Docker Desktop 필수 이해)
Docker Desktop을 Windows에서 사용하다 보면 어느 날 갑자기 이런 상황을 만나게 됩니다.
- C드라이브 또는 D드라이브 용량이 부족하다
- Docker 관련 파일 하나가 수십 GB까지 커져 있다
docker_data.vhdx파일이 30GB, 50GB, 100GB까지 늘어나 있다- 컨테이너는 몇 개 없는데 왜 이렇게 용량이 큰지 모르겠다
저 역시 실제로 확인해보니 docker_data.vhdx 파일 하나가 57GB 이상 커져 있었습니다.
오늘은 많은 개발자가 한 번쯤 겪는 Docker Desktop 용량 증가 문제, 그리고 핵심 파일인 docker_data.vhdx의 정체를 쉽게 정리해보겠습니다.
docker_data.vhdx란 무엇인가?
간단히 말하면:
Docker Desktop이 Windows + WSL2 환경에서 사용하는 가상 하드디스크 파일입니다.
즉, Docker 내부 데이터가 모두 이 파일 안에 저장됩니다.
예를 들면:
- Docker 이미지
- 컨테이너 데이터
- PostgreSQL / MySQL DB 데이터
- 볼륨(volume)
- 빌드 캐시
- npm install 결과물
- 로그 파일
- 임시 파일
Windows에서는 폴더처럼 보이지 않고, 하나의 거대한 가상 디스크 파일(.vhdx) 로 관리됩니다.
왜 Docker 용량이 계속 늘어날까?
Docker는 사용할수록 데이터가 누적됩니다.
대표적인 원인은 아래와 같습니다.
1. 이미지(Image) 누적
docker pull node
docker pull postgres
docker pull redis
새 이미지를 받을 때마다 저장 공간이 늘어납니다.
특히 버전이 다르면 각각 따로 저장됩니다.
예:
- node:18
- node:20
- node:latest
전부 용량 차지합니다.
2. 컨테이너(Container) 잔존
삭제하지 않은 종료 컨테이너가 쌓입니다.
docker ps -a
보면 오래된 테스트 컨테이너가 남아있는 경우 많습니다.
3. 빌드 캐시 증가
개발 중 자주 발생합니다.
docker compose up --build
docker build .
이미지 레이어 캐시가 계속 쌓입니다.
실무에서는 이것 때문에 수십 GB 되는 경우 흔합니다.
4. DB 볼륨 데이터 증가
특히 아래 사용자는 많이 커집니다.
- PostgreSQL
- MySQL
- MongoDB
- Elasticsearch
데이터가 계속 쌓이면 docker_data.vhdx도 커집니다.
5. 로그 파일 증가
서버 로그, 에러 로그가 누적되면 생각보다 큽니다.
예:
application.log
postgres log
nginx log
node log
왜 삭제해도 파일 크기가 안 줄어들까?
이 부분이 핵심입니다.
Docker 내부에서 데이터를 지워도 Windows 입장에서는:
docker_data.vhdx 파일 자체는 그대로 유지
즉:
- 내부 빈 공간은 생겼지만
- 외부 파일 크기는 유지됨
그래서 “분명 정리했는데 왜 57GB 그대로지?” 라는 상황이 발생합니다.
docker_data.vhdx 직접 삭제하면 될까?
절대 권장하지 않습니다.
삭제 시 날아갈 수 있는 것:
- 모든 컨테이너
- 모든 이미지
- 모든 볼륨
- DB 데이터
- 개발 환경 세팅
즉 Docker 초기화 수준입니다.
현재 Docker 용량 확인 방법
먼저 내부 사용량부터 확인하세요.
docker system df
예시:
Images 12GB
Containers 2GB
Volumes 18GB
Build Cache 15GB
이렇게 어디가 큰지 확인 가능합니다.
안전하게 용량 정리하는 방법
1단계: 안 쓰는 컨테이너/캐시 정리
docker system prune
2단계: 안 쓰는 이미지까지 정리
docker system prune -a
주의: 다시 pull 받아야 할 수 있습니다.
3단계: 사용 안 하는 볼륨 정리
docker volume prune
주의: DB 데이터 삭제 가능성 있음
Windows 사용자 필수 팁 (WSL2 환경)
Docker Desktop은 내부적으로 WSL2를 사용합니다.
즉 구조는 이런 느낌입니다.
Windows
└─ Docker Desktop
└─ WSL2 Linux
└─ docker_data.vhdx
Windows에서 직접 파일 탐색기로 보는 것은 껍데기일 뿐이고,
실제 내부는 리눅스 파일 시스템입니다.
개발자 실전 관리 팁
개인 개발 환경이라면 월 1회 정리 추천
docker system prune -a
DB 사용 중이면 백업 후 정리
pg_dump
mysqldump
이미지 빌드 자주 하면 캐시 확인 필수
docker builder prune
저의 현실적인 의견
Docker는 편리하지만 방치하면 용량 괴물이 됩니다.
특히 Windows 사용자는:
- SSD 용량 부족
- 백업 어려움
- docker_data.vhdx 비대화
이 3종 세트를 자주 겪습니다.
저도 처음엔 “파일 하나인데 왜 57GB지?” 싶었는데, 알고 보면 개발 흔적이 다 들어있는 저장소였습니다.
결론
docker_data.vhdx는 단순 파일이 아닙니다.
Docker Desktop 전체 저장소입니다.
따라서 직접 삭제보다:
- 내부 사용량 확인
- 안전 정리
- 필요 시 압축/최적화
- 주기적 관리
이 방식으로 접근해야 합니다.
함께 보면 좋은 글
- Docker 컨테이너 삭제 및 정리 방법
- Docker Compose 기본 사용법
- Windows에서 Docker 느려질 때 해결법
- 개발자 SSD 용량 관리 실전 팁
한 줄 요약
docker_data.vhdx가 커졌다면 문제는 파일이 아니라 Docker 내부 데이터 누적입니다.
'개발 > 도커(DOCKER)' 카테고리의 다른 글
| Docker 컨테이너 삭제 및 정리 방법 (실무에서 자주 쓰는 명령어) (1) | 2026.03.18 |
|---|---|
| Docker Compose 기본 사용법 정리 (초보자 쉽게 이해하기) (0) | 2026.03.18 |
| Docker 컨테이너와 이미지 차이 완벽 이해 (초보자 가이드) (0) | 2026.03.16 |