Docker Desktop을 오래 쓰다 보면 맥북, Windows WSL2, Linux 환경에서 디스크 용량이 갑자기 줄어드는 일이 자주 생깁니다. 특히 failed to solve: no space left on device, ENOSPC, no space left on device 같은 메시지가 보이면 Docker 이미지, 중지된 컨테이너, 빌드 캐시, 볼륨 중 하나가 용량을 많이 차지하고 있을 가능성이 큽니다.


가장 안전한 순서는 단순합니다. 먼저 docker system df로 사용량을 확인하고, 그다음 중지된 컨테이너와 불필요한 이미지, 빌드 캐시를 정리합니다. 데이터베이스 파일이 들어 있을 수 있는 볼륨은 마지막에 따로 확인해야 합니다.


Docker Desktop 용량을 이미지, 컨테이너, 빌드 캐시, 볼륨 순서로 정리하는 개념도

Docker Desktop 용량은 사용량 확인 후 이미지, 컨테이너, 빌드 캐시, 볼륨 순서로 정리하는 것이 안전합니다.


Docker Desktop 용량이 늘어나는 대표 원인

Docker Desktop은 컨테이너를 실행할 때 이미지 레이어, 컨테이너 쓰기 레이어, 빌드 캐시, 볼륨을 저장합니다. 프로젝트를 여러 번 빌드하거나 Dev Container, Docker Compose, Node.js, Python 이미지를 자주 바꾸면 사용하지 않는 항목이 남아 디스크를 계속 차지할 수 있습니다.


항목 용량이 늘어나는 이유 주의할 점
이미지 프로젝트마다 다른 베이스 이미지를 내려받기 때문입니다. 삭제해도 다시 받을 수 있지만 첫 실행 시간이 늘어날 수 있습니다.
컨테이너 실행이 끝난 컨테이너가 남아 있을 수 있습니다. 중지된 컨테이너만 지우는지 확인합니다.
빌드 캐시 Dockerfile을 반복 빌드하면서 이전 레이어가 쌓입니다. 삭제하면 다음 빌드는 느려질 수 있습니다.
볼륨 DB, 업로드 파일, 개발 데이터가 계속 저장됩니다. 삭제 전 백업 여부를 반드시 확인합니다.

먼저 Docker 디스크 사용량 확인하기

용량 정리는 확인 명령부터 시작해야 합니다. 어떤 항목이 큰지 보지 않고 prune 명령을 실행하면 필요했던 컨테이너나 이미지, 볼륨까지 지울 수 있습니다.


docker system df

더 자세히 보고 싶다면 아래 명령어를 사용합니다. 이미지별, 컨테이너별, 볼륨별 사용량을 확인하는 데 도움이 됩니다.


docker system df -v

이미지, 컨테이너, 볼륨을 각각 확인하려면 아래 명령어를 순서대로 실행합니다.


docker image ls
docker container ls -a
docker volume ls

먼저 볼 기준
RECLAIMABLE 값이 큰 항목부터 정리 후보로 보면 됩니다. 다만 볼륨은 데이터가 남아 있는 공간일 수 있으므로, 이미지나 빌드 캐시보다 더 신중하게 판단해야 합니다.


Docker Desktop 용량 줄이기 빠른 해결 순서

docker system df 확인 후 prune 명령어를 단계별로 실행하는 안전한 정리 순서

Docker 용량 정리는 사용량 확인, 기본 정리, 캐시 정리, 볼륨 확인 순서로 진행하는 것이 안전합니다.


아래 순서는 초보자가 비교적 안전하게 따라 하기 쉬운 방식입니다. 처음부터 --volumes를 붙이지 말고, 중지된 컨테이너와 사용하지 않는 이미지, 빌드 캐시를 먼저 정리합니다.


1단계: 중지된 컨테이너, 미사용 네트워크, dangling 이미지, 빌드 캐시 정리

가장 기본적인 정리 명령어입니다. 실행하면 삭제 대상이 표시되고 계속할지 물어봅니다.


docker system prune

이 명령은 실행 중인 컨테이너를 삭제하지 않습니다. 다만 중지된 컨테이너와 사용하지 않는 네트워크, dangling 이미지, 사용하지 않는 빌드 캐시가 삭제될 수 있으므로 실행 전 목록을 확인하는 습관이 좋습니다.


2단계: 사용하지 않는 이미지까지 더 넓게 정리

이미지가 많이 쌓였다면 -a 옵션으로 더 넓게 정리할 수 있습니다. 이 옵션은 현재 컨테이너에서 쓰지 않는 이미지까지 삭제할 수 있으므로, 다음 실행 때 이미지를 다시 내려받아야 할 수 있습니다.


docker system prune -a

3단계: 빌드 캐시만 따로 정리

이미지는 남겨두고 Docker build cache만 줄이고 싶다면 빌드 캐시 정리 명령을 따로 쓰는 것이 좋습니다.


docker builder prune

오래된 캐시 위주로 줄이고 싶다면 기간 필터를 사용할 수 있습니다. 예를 들어 최근 7일 이내 캐시는 남기고 싶다면 아래처럼 실행합니다.


docker builder prune --filter "until=168h"

더 강하게 정리하려면 -a 옵션을 붙일 수 있습니다. 이 경우 사용하지 않는 빌드 캐시를 더 많이 지울 수 있지만, 다음 빌드 속도가 느려질 수 있습니다.


docker builder prune -a

4단계: 볼륨은 마지막에 확인 후 삭제

볼륨은 컨테이너가 사라져도 데이터가 남을 수 있는 영역입니다. PostgreSQL, MySQL, MongoDB, Redis, WordPress 같은 서비스를 Docker Compose로 실행했다면 볼륨 안에 실제 개발 데이터가 들어 있을 수 있습니다.


docker volume ls

사용하지 않는 볼륨을 삭제하려면 아래 명령어를 사용할 수 있습니다. 실행 전 프로젝트별 데이터가 필요한지 먼저 확인합니다.


docker volume prune

전체 정리와 함께 볼륨까지 포함하려면 아래 명령어를 쓸 수 있습니다. 다만 이 명령은 데이터 삭제 위험이 있으므로 DB나 업로드 파일이 들어 있는 프로젝트에서는 바로 실행하지 않는 것이 좋습니다.


docker system prune --volumes

주의할 점
docker system prune --volumes는 용량을 크게 줄일 수 있지만, 사용하지 않는 볼륨까지 삭제할 수 있습니다. 로컬 DB, 테스트 데이터, 업로드 파일이 필요한 프로젝트라면 백업하거나 프로젝트별 볼륨 이름을 먼저 확인해야 합니다.


Windows·Mac·Linux에서 다른 점

Docker CLI 명령어는 대부분 운영체제와 관계없이 같습니다. 차이는 Docker Desktop이 내부적으로 디스크 이미지를 관리하는 방식, WSL2 사용 여부, 실제 호스트 디스크가 회수되는 시점에서 생깁니다.


환경 확인할 점 권장 순서
Windows WSL2 Docker Desktop이 WSL2 기반으로 동작하면 가상 디스크가 커질 수 있습니다. PowerShell 또는 Windows Terminal에서 사용량 확인 후 prune 명령을 실행합니다.
Mac Docker Desktop 디스크 이미지가 실제 사용량보다 크게 보일 수 있습니다. CLI 정리 후 Docker Desktop의 Resources 설정에서 디스크 이미지 위치와 크기를 확인합니다.
Linux Docker Engine 저장소와 Docker Desktop 저장 방식이 다를 수 있습니다. 먼저 docker system df -v로 Docker 내부 사용량을 확인합니다.

Docker Desktop 파일 크기가 바로 줄지 않을 때

docker system prune을 실행했는데도 Finder나 파일 탐색기에서 Docker Desktop 관련 파일 크기가 바로 줄지 않는 경우가 있습니다. Docker Desktop은 내부 디스크 이미지를 사용하기 때문에, Docker 내부 객체를 삭제한 시점과 호스트 운영체제가 실제 여유 공간을 보여주는 시점이 다를 수 있습니다.


Mac에서는 Docker Desktop 설정의 Resources 영역에서 디스크 이미지 위치와 최대 크기를 확인할 수 있습니다. 디스크 이미지 위치를 직접 Finder에서 옮기면 Docker Desktop이 파일을 추적하지 못할 수 있으므로, 위치 변경은 Docker Desktop 설정 화면에서 처리하는 것이 안전합니다.


Docker Desktop 디스크 이미지 최대 크기를 줄이면 기존 디스크 이미지가 삭제되어 컨테이너와 이미지가 사라질 수 있습니다. 용량 제한을 낮추기 전에는 필요한 이미지, Compose 프로젝트, 볼륨 데이터를 먼저 확인해야 합니다.


재발 방지를 위한 Docker 빌드 습관

용량을 한 번 줄여도 빌드를 반복하면 다시 커질 수 있습니다. Dockerfile과 프로젝트 구조를 정리하면 빌드 캐시가 불필요하게 커지는 일을 줄일 수 있습니다.


  • .dockerignorenode_modules, .venv, dist, build, 로그 파일을 넣습니다.
  • Dockerfile에서 자주 바뀌는 파일은 뒤쪽에 복사해 캐시가 불필요하게 깨지지 않도록 합니다.
  • Dev Container를 쓴다면 Python, Node.js 버전을 명확히 고정해 매번 다른 이미지가 생기지 않도록 합니다.
  • 빌드 캐시만 주기적으로 정리하려면 docker builder prune --filter "until=168h"처럼 범위를 제한합니다.
  • DB 데이터는 컨테이너 내부 쓰기 레이어보다 이름 있는 볼륨이나 bind mount로 관리합니다.

Dev Container에서 Docker 이미지가 자주 바뀐다면 Dev Container에서 Python·Node 버전 고정하는 법을 함께 확인하면 불필요한 재빌드와 이미지 증가를 줄이는 기준을 잡는 데 도움이 됩니다.


상황별 추천 명령어 정리

상황 명령어 삭제 범위
현재 사용량 확인 docker system df -v 삭제 없음
기본 정리 docker system prune 중지된 컨테이너, 미사용 네트워크, dangling 이미지, 빌드 캐시
사용하지 않는 이미지까지 정리 docker system prune -a 현재 컨테이너에서 쓰지 않는 이미지까지 포함
빌드 캐시만 정리 docker builder prune 현재 builder의 빌드 캐시
볼륨 정리 docker volume prune 사용하지 않는 로컬 볼륨

공식 자료로 더 확인하기

Docker 정리 명령어는 옵션에 따라 삭제 범위가 달라집니다. 특히 이미지, 빌드 캐시, 볼륨은 프로젝트 실행 환경과 데이터 보관 방식에 영향을 줄 수 있으므로, 실행 전 공식 문서에서 명령어 범위를 확인하는 것이 좋습니다.


Docker system df 공식 문서

Docker 이미지, 컨테이너, 로컬 볼륨, 빌드 캐시가 각각 얼마나 용량을 차지하는지 확인하는 명령어 사용법을 볼 수 있습니다.

docker system df 사용법 공식 문서에서 확인하기

Docker unused objects 정리 공식 문서

docker system prune, 이미지 정리, 컨테이너 정리, 볼륨 정리처럼 사용하지 않는 Docker 객체를 삭제하는 기준을 확인할 수 있습니다.

Docker prune 삭제 범위 공식 문서에서 확인하기

Docker builder prune 공식 문서

Docker build cache만 따로 정리할 때 사용하는 docker builder prune 명령어와 필터 옵션을 확인할 수 있습니다.

docker builder prune 옵션 공식 문서에서 확인하기

함께 보면 좋은 글

Docker Desktop 설치 후 리소스 문제가 계속될 때
용량 정리 후에도 Docker Desktop이 느리거나 권한, 리소스, 디스크 문제가 반복된다면 설치 단계와 설정값을 함께 점검하는 것이 좋습니다.
Docker Desktop 설치 2026 권한·리소스·디스크 용량 폭증 체크리스트

Dev Container 사용 중 이미지가 계속 쌓일 때
VSCode Dev Container를 쓰면 프로젝트마다 이미지와 빌드 캐시가 생길 수 있습니다. 기본 구조를 이해하면 불필요한 재빌드를 줄이는 데 도움이 됩니다.
VSCode Dev Container 입문 2026 devcontainer.json·Docker 개발환경 통일 방법

자주 묻는 질문

Q1. Docker Desktop 용량 줄이기는 어떤 명령어부터 실행해야 하나요?

먼저 docker system df 또는 docker system df -v로 이미지, 컨테이너, 로컬 볼륨, 빌드 캐시 사용량을 확인하는 것이 좋습니다. 그다음 docker system prune으로 기본 정리를 하고, 그래도 부족하면 docker system prune -a, docker builder prune, docker volume prune 순서로 범위를 넓히면 됩니다.


Q2. docker system prune -a를 실행해도 괜찮나요?

실행할 수는 있지만 처음부터 권장되지는 않습니다. -a 옵션은 현재 컨테이너에서 사용하지 않는 이미지까지 삭제할 수 있어 다음 실행 때 이미지를 다시 내려받아야 할 수 있습니다. 저장 공간이 급한 상황이 아니라면 기본 docker system prune을 먼저 실행하고, 이미지 목록을 확인한 뒤 판단하는 편이 안전합니다.


Q3. docker system prune --volumes는 언제 써야 하나요?

볼륨 안에 더 이상 필요한 데이터가 없다고 확신할 때만 사용하는 것이 좋습니다. Docker Compose로 DB를 실행했다면 볼륨에 개발용 데이터베이스, 업로드 파일, 테스트 데이터가 남아 있을 수 있습니다. 삭제 전 docker volume ls로 목록을 보고, 필요한 데이터는 백업한 뒤 실행해야 합니다.


Q4. Docker build cache만 삭제하려면 어떻게 하나요?

이미지와 컨테이너는 최대한 유지하고 빌드 캐시만 줄이고 싶다면 docker builder prune을 사용합니다. 오래된 캐시만 정리하고 싶다면 docker builder prune --filter "until=168h"처럼 기간 조건을 걸 수 있습니다. 빌드 캐시를 삭제하면 다음 빌드는 느려질 수 있지만, 이미지 자체를 지우는 것보다 범위를 좁혀 정리할 수 있습니다.


Q5. 정리 명령을 실행했는데 Mac에서 Docker.raw 크기가 그대로 보이는 이유는 무엇인가요?

Docker Desktop은 내부 디스크 이미지를 사용하므로 Docker 객체를 삭제한 직후 Finder나 저장 공간 화면의 표시가 바로 줄지 않을 수 있습니다. 실제 사용량과 최대 할당 크기가 다르게 보일 수도 있습니다. 이럴 때는 Docker Desktop 설정의 Resources 영역에서 디스크 이미지 위치와 크기를 확인하고, 파일을 Finder에서 직접 옮기지 않는 것이 안전합니다.


Docker Desktop 용량 정리는 삭제 명령보다 확인 명령을 먼저 실행하고, 데이터가 들어 있을 수 있는 볼륨은 마지막에 판단하는 것이 안전합니다.