AskClean

Mac에서 Docker 용량이 너무 클 때 안전하게 정리하는 방법

AskClean 팀 · 업데이트 2026-11-02

먼저 docker system df -v를 실행해 이미지, 중지된 컨테이너, 빌드 캐시, 볼륨 중 무엇이 Docker의 공간을 차지하는지 확인하고, 원인으로 확인된 분류부터 정리하세요. 이름 있는 볼륨은 데이터를 백업하기 전에는 지우지 말고, Docker.raw는 Finder에서 직접 삭제하거나 옮기지 마세요.

컨테이너, 이미지 계층, 빌드 캐시와 보호된 데이터 볼륨으로 나뉜 Docker 저장 공간
하나의 가상 디스크 안에 다시 만들 수 있는 계층과 영구 데이터가 함께 있으므로, 정리하기 전에 분류별로 확인하세요.

macOS에서 Docker가 크게 보이는 이유

Docker Desktop은 가벼운 가상 머신 안에서 Linux 컨테이너를 실행합니다. 이미지, 컨테이너 쓰기 계층, 빌드 캐시, 볼륨은 Finder에서 손댈 일반 폴더가 아니라 하나의 큰 디스크 이미지 파일 안에 저장됩니다. Docker Desktop 버전과 설정에 따라 다르지만, 이 파일의 이름은 보통 Docker.raw입니다.

디스크 이미지의 최대 용량, Finder에 보이는 크기, Docker가 실제로 쓰는 공간은 서로 다를 수 있습니다. 희소 파일(sparse file)은 논리적으로 큰 범위를 잡아 두면서도 호스트의 물리적 공간은 일부만 쓸 수 있습니다. Finder에 보이는 가장 큰 숫자를 바로 확보할 수 있다고 여기지 말고, Docker 자체 집계와 macOS 여유 공간부터 확인하세요.

Docker.raw를 직접 삭제하면 Docker의 객체 관리를 건너뛰게 되어 로컬 이미지, 컨테이너, 볼륨이 한꺼번에 사라질 수 있습니다. Finder에서 옮겨도 Docker Desktop이 망가질 수 있습니다. Docker의 Mac 문서도 디스크 이미지 위치는 Settings에서 바꾸라고 안내합니다.

읽기 전용으로 Docker 사용량 점검하기

Docker Desktop을 실행하고 터미널에서 docker system df를 실행하세요. 이미지, 컨테이너, 로컬 볼륨, 빌드 캐시의 사용량과 Docker가 회수할 수 있다고 보는 양을 요약해 보여 줍니다. 자세히 보려면 docker system df -v를 실행합니다.

회수 가능(reclaimable) 수치는 신중하게 해석하세요. 한 이미지를 여러 컨테이너가 함께 쓸 수 있으므로 태그 하나를 지워도 표시된 크기가 모두 돌아오지는 않습니다. 지금 연결된 컨테이너가 없어 쓰지 않는 것처럼 보이는 볼륨에도 나중에 다시 쓸 데이터베이스가 들어 있을 수 있습니다.

Docker Desktop의 Settings > Resources에서 설치된 버전이 제공하는 디스크 사용 한도와 디스크 이미지 위치도 확인하고, 바꾸기 전에 현재 값을 기록하세요. Docker가 시작되지 않는다면 초기화나 재설치를 시도하기 전에 Docker의 복구 절차에 따라 Docker 데이터 파일부터 백업하세요.

  1. docker system df -v 결과를 날짜와 함께 저장합니다.
  2. docker ps -a로 컨테이너 목록을 보고, 정말로 필요 없어진 중지된 작업을 가려냅니다.
  3. docker image ls로 이미지 목록을 보고, 중요한 태그를 현재 프로젝트나 CI 워크플로와 연결해 둡니다.
  4. docker volume ls로 볼륨 목록을 보고, 데이터가 든 볼륨마다 소유자와 백업 여부를 확인합니다.
  5. 빌드 캐시는 마지막에 docker builder du 등 사용 중인 빌더가 지원하는 명령으로 살펴봅니다.

실행 중인 컨테이너에 연결되어 있지 않다고 해서 볼륨의 데이터를 버려도 된다는 뜻은 아닙니다. Compose 프로젝트, 중지된 데이터베이스, 일회성 복구 작업은 정상적인 볼륨을 연결되지 않은 상태로 남기는 경우가 많습니다.

중지된 컨테이너와 쓰지 않는 이미지 골라서 삭제하기

필요 없다고 확인한 컨테이너는 docker container rm 뒤에 컨테이너 이름이나 ID를 붙여 삭제합니다. 중지된 컨테이너를 지우면 쓰기 계층의 변경 내용은 사라지지만, 볼륨 삭제를 따로 요청하지 않는 한 이름 있는 볼륨은 남습니다.

쓰지 않는다고 확인한 이미지는 docker image rm과 태그 또는 ID로 삭제합니다. 아직 참조하는 컨테이너가 있다고 Docker가 알려 주면 강제로 지우지 말고 그 컨테이너를 먼저 확인하세요. 자주 빌드하는데 네트워크가 느리다면 다시 받기 무거운 기본 이미지 몇 개는 남겨 두는 편이 합리적입니다.

분류별 명령은 시스템 전체 prune보다 영향 범위가 작습니다. docker container prune은 확인을 받은 뒤 중지된 컨테이너를 모두 지우고, docker image prune은 기본적으로 dangling 이미지만 지웁니다. -a를 붙이면 어떤 컨테이너도 참조하지 않는 이미지까지 범위가 넓어집니다. 매번 확인 요약을 읽으세요.

볼륨은 건드리지 않고 빌드 캐시 정리하기

BuildKit은 바뀌지 않은 단계를 다시 쓰려고 계층을 보관합니다. 빌드를 자주 하는 개발용 Mac에서는 빌드 캐시가 가장 큰 회수 가능 분류가 될 수 있지만, Dockerfile과 빌드 컨텍스트로 언제든 다시 만들 수 있습니다.

기본 빌더에서 사용하지 않는 빌드 캐시는 docker builder prune으로 지웁니다. buildx로 관리하는 빌더라면 docker buildx prune을 쓰고, 설치된 Docker 버전이 지원하는 옵션을 확인하세요. 두 명령 모두 force 플래그를 붙이지 않으면 확인을 묻습니다. 이 확인 단계는 유용한 안전장치이니 남겨 두세요.

다음 이미지 빌드는 느려지고 계층을 다시 내려받거나 다시 빌드하게 됩니다. 이런 일이 매주 반복된다면 무조건 비우는 일정을 잡기보다 Dockerfile과 캐시 정책을 개선하세요. 자주 바뀌는 소스 복사보다 의존성 설치 단계를 앞에 두고, .dockerignore를 꼼꼼히 정리하고, 계속 유지되는 CI 빌더에는 캐시 용량 한도를 명확히 정하세요.

docker system prune의 범위부터 이해하기

docker system prune은 여러 정리를 한 번에 하는 명령입니다. Docker 문서에 따르면 기본 동작은 중지된 컨테이너, 사용하지 않는 네트워크, dangling 이미지, 사용하지 않는 빌드 캐시를 삭제합니다. 이 분류들을 모두 점검한 뒤라면 적절할 수 있습니다.

기본 명령은 볼륨을 지우지 않습니다. --volumes 옵션을 붙이면 익명 볼륨까지 정리 대상이 되며, 여기에 실제 애플리케이션 데이터가 들어 있을 수 있습니다. 가볍게 붙이지 말고, 설치된 Docker 버전이 무엇을 지운다고 안내하는지 확인하지 않은 채 포럼에서 복사한 한 줄 명령을 실행하지 마세요.

-a 옵션은 이미지 정리 범위를 dangling 이미지에서 컨테이너가 쓰지 않는 모든 이미지로 넓힙니다. 데이터를 잃지 않더라도 다시 받고 다시 빌드하는 비용이 커질 수 있습니다. 공간을 많이 차지하는 이미지를 알고 있다면 그 이미지만 골라 지우는 편이 낫습니다.

  1. 읽기 전용 점검을 마치고, 데이터가 중요한 볼륨은 모두 백업합니다.
  2. 원인이 한 분류에 있다면 빌드 캐시나 중지된 컨테이너만 따로 정리합니다.
  3. 확인 화면에 표시된 모든 분류를 받아들일 수 있을 때만 -a와 --volumes 없이 docker system prune을 실행합니다.
  4. docker system df -v를 다시 실행하고 중요한 프로젝트가 여전히 시작되는지 확인합니다.
  5. Docker Desktop이 호스트 공간을 반환할 시간을 둔 뒤 macOS 여유 공간을 확인합니다.

볼륨과 데이터베이스 보호하기

볼륨은 컨테이너보다 오래 남도록 설계되어 있습니다. PostgreSQL, MySQL 같은 개발용 서비스의 볼륨에는 연결된 컨테이너가 중지되거나 삭제된 뒤에도 유일한 로컬 데이터가 남아 있을 수 있습니다. 소유자와 백업 여부를 알기 전까지는 볼륨을 캐시가 아니라 문서처럼 다루세요.

Docker의 백업 안내에 따르면 볼륨 데이터는 따로 백업해야 합니다. 가능하면 데이터베이스 자체의 내보내기 기능을 쓰거나, 시험해 본 볼륨 백업 절차를 사용하세요. 실행 중인 데이터베이스 볼륨에서 디렉터리를 그대로 복사한 것은 일관된 백업이 아닐 수 있습니다.

Compose 파일에서 볼륨에 이름을 붙여 누가 쓰는지 분명히 드러나게 하세요. 어느 프로젝트가 만들었는지, 어떻게 복원하는지, 언제까지 보관하는지 기록해 두면 다음 정리는 추측이 아니라 보관 기준에 따른 결정이 됩니다.

Docker Desktop 저장 공간 줄이기, 옮기기, 초기화하기

객체를 정리해도 호스트 저장 공간이 부족하다면 Docker Desktop Settings에서 디스크 이미지를 관리하세요. 제공되는 설정은 버전마다 다르지만, 디스크 사용 한도나 디스크 이미지 위치를 바꿀 때는 공식 지원되는 설정 화면을 사용해야 합니다.

Docker.raw를 Finder에서 다른 드라이브로 끌어서 옮기지 마세요. Docker는 디스크 이미지를 Settings에서 옮기라고 명시적으로 안내합니다. 공장 초기화, 제거, 또는 데이터를 잃을 수 있는 디스크 크기 변경 전에는 필요한 이미지를 내보내거나 다시 받을 수 있는지 확인하고, 볼륨은 따로 백업하고, 필요한 설정도 보관하세요.

객체를 지운 뒤 호스트 공간이 실제로 돌아오기까지는 디스크 이미지 형식과 Docker Desktop 동작에 따라 시간이 걸릴 수 있습니다. Docker의 Mac FAQ에 따르면 Docker.raw는 이전 qcow2 형식보다 호스트 공간을 훨씬 빨리 반환합니다. 곧바로 더 많은 데이터를 지우지 말고 정리가 끝난 뒤 다시 측정하세요.

AskClean이 하는 일과 하지 않는 일

AskClean은 Docker Desktop 런처 캐시를 찾아내고, Docker가 관리하는 저장 공간이 Mac에서 얼마나 차지하는지 보여 줍니다. 다만 Docker.raw, Docker 그룹 컨테이너 데이터, 자격 증명, 이미지, 볼륨은 일반 앱 캐시처럼 삭제하지 않고, Docker가 관리하는 데이터 또는 선택할 수 없는 항목으로 표시합니다.

컨테이너 객체와 가상 디스크는 Docker의 CLI와 Settings로 관리하세요. AskClean의 역할은 Mac 쪽에 숨어 있는 사용량을 드러내고, 넓은 범위의 정리가 자격 증명이나 볼륨 데이터까지 건드리지 않게 막는 것입니다. 안전한 순서는 AskClean으로 확인하고, docker system df -v로 진단한 다음, 정확한 Docker 분류만 정리하는 것입니다.

Docker 분류별 삭제 위험

Docker의 가상 디스크에는 다시 만들 수 있는 계층과 영구 데이터가 함께 들어 있습니다.

분류확인 방법삭제 결과
빌드 캐시docker system df -v / 빌더 도구다시 빌드하거나 내려받으면 됩니다. 볼륨 데이터는 건드리지 않습니다.
중지된 컨테이너docker ps -a쓰기 계층이 사라지지만 이름 있는 볼륨은 보통 남습니다.
쓰지 않는 이미지docker image ls다시 필요하면 내려받거나 다시 빌드해야 합니다.
볼륨docker volume ls앱이나 데이터베이스의 영구 데이터가 완전히 사라질 수 있습니다.
Docker.rawDocker Desktop Settings직접 삭제하면 모든 로컬 Docker 객체와 볼륨이 지워질 수 있습니다.

자주 묻는 질문

Docker.raw가 왜 이렇게 큰가요?

Docker Desktop의 Linux 쪽 이미지, 컨테이너, 캐시, 볼륨을 담은 가상 디스크이기 때문입니다. 논리적 크기나 최대 크기는 지금 실제로 쓰는 호스트 공간과 다를 수 있으므로, 조치하기 전에 docker system df -v와 Docker Desktop Settings를 확인하세요.

docker system prune은 안전한가요?

표시되는 분류를 모두 받아들일 수 있을 때만 안전합니다. 기본으로는 중지된 컨테이너, 사용하지 않는 네트워크, dangling 이미지, 사용하지 않는 빌드 캐시가 삭제됩니다. 먼저 점검하고, 이미지를 다시 받는 비용과 데이터 위험을 이해하기 전에는 -a와 --volumes를 붙이지 마세요.

docker system prune이 볼륨도 삭제하나요?

기본으로는 삭제하지 않습니다. --volumes를 붙이면 익명 볼륨까지 정리 대상이 됩니다. 쓰지 않는 것처럼 보이는 볼륨에도 중요한 데이터베이스 데이터가 있을 수 있으므로, 지우기 전에 백업하고 소유자를 확인하세요.

Finder에서 Docker.raw를 삭제해도 되나요?

직접 삭제하거나 옮기지 마세요. 로컬 Docker 데이터가 모두 사라지거나 Docker Desktop이 망가질 수 있습니다. 객체는 Docker CLI로, 디스크 이미지는 Docker Desktop Settings에서 관리하세요.

참고 자료

개발자 저장 공간 정리 계속하기