개발/도커(DOCKER)

Docker 용량이 계속 늘어나는 이유? `docker_data.vhdx` 개념부터 정리합니다 (Windows Docker Desktop 필수 이해)

Mr.Lee 하루 2026. 4. 25. 10:39

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 전체 저장소입니다.

따라서 직접 삭제보다:

  1. 내부 사용량 확인
  2. 안전 정리
  3. 필요 시 압축/최적화
  4. 주기적 관리

이 방식으로 접근해야 합니다.


함께 보면 좋은 글

  • Docker 컨테이너 삭제 및 정리 방법
  • Docker Compose 기본 사용법
  • Windows에서 Docker 느려질 때 해결법
  • 개발자 SSD 용량 관리 실전 팁

한 줄 요약

docker_data.vhdx가 커졌다면 문제는 파일이 아니라 Docker 내부 데이터 누적입니다.