주요 콘텐츠로 건너뛰기
Mole
개요 기능 사용 후기 가격 FAQ 블로그
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES
바로 구매구매 다운로드

    도움말, 문서, 릴리스, 아티클

    홈/블로그

    데이터를 잃지 않고 Mac Docker 정리하기

    개발게시 2026년 6월 26일수정 2026년 8월 8일4분 읽기

    Docker Desktop은 이미지, 쓰기가 가능한 컨테이너 레이어, 빌드 캐시, 볼륨이 Linux 가상 디스크 안에 있기 때문에 수십 기가바이트를 차지할 수 있습니다. 이 범주들은 모두 같은 방식으로 버려도 되는 것은 아닙니다. 빌드 캐시는 보통 다시 만들 수 있지만, 데이터베이스 볼륨은 중요한 데이터의 유일한 복사본일 수 있습니다. 안전한 정리는 가장 넓은 prune 명령이 아니라 Docker의 현황 파악부터 시작합니다.

    Docker가 차지한 공간이 돌아오지 않는 이유

    macOS의 Docker Desktop은 Linux VM을 실행하며, 데이터는 보통 Docker.raw라는 스파스(sparse) 가상 디스크에 저장합니다. Docker의 Mac storage guide 는 위치, 디스크 한도, 실제 사용 공간을 Docker Desktop > Settings > Resources > Advanced에서 확인하라고 안내합니다. 이 파일은 Finder가 아니라 그 설정으로 옮기세요. 스파스 파일은 논리적 최대 크기와 그보다 작은 실제 할당량을 가지므로, ls -lh만 보면 현재 차지하는 용량보다 훨씬 커 보일 수 있습니다.

    Docker 자신이 얼마나 쓰고 있다고 보는지 확인하세요:

    docker system df -v
    

    상세 보기는 이미지, 컨테이너, 로컬 볼륨, 빌드 캐시를 나눕니다. "Reclaimable"은 Docker가 그 객체를 필요로 하는 현재 참조를 찾지 못했다는 뜻일 뿐, 중지된 컨테이너·옛 이미지·볼륨을 내일 쓰지 않을 것이라는 증거가 아닙니다. prune 전에 docker ps -a와 docker volume ls도 함께 확인하세요.

    좁은 범위의 정리부터 시작하세요

    항상 Docker 안에서 공간을 회수하고, 가상 디스크 파일을 직접 지우지 마세요. 이해하는 범주부터 시작하세요:

    docker builder prune --filter until=168h
    docker image prune
    docker container prune
    

    첫 명령은 7일이 지난 빌드 캐시를 제거합니다. 작업 방식에 맞게 기간을 조정하세요. 다음 두 명령은 dangling 이미지와 중지된 컨테이너를 제거하기 전에 확인을 묻습니다. 각 단계 후 docker system df -v를 다시 실행해 어떤 조치가 효과가 있었는지 확인하세요.

    Docker의 pruning guide는 docker system prune을 더 넓은 편의 명령으로 설명합니다. -a를 붙이면 dangling 레이어뿐 아니라 사용하지 않는 모든 이미지를 제거합니다. --volumes를 붙이면 사용하지 않는 익명 볼륨까지 범위가 넓어지며, 여기에 데이터베이스 파일이나 다른 상태가 들어 있을 수 있습니다. docker system prune -a --volumes를 기본 정리 명령으로 쓰지 마세요. 볼륨을 prune하기 전에 이름과 소유 관계를 확인하세요:

    docker volume ls
    docker volume inspect <volume-name>
    

    Compose가 만든 볼륨에는 보통 프로젝트와 서비스 레이블이 붙습니다. 소유 프로젝트를 확인한 뒤, 다시 만들 수 없는 데이터는 볼륨을 제거하기 전에 내보내거나 백업하세요.

    디스크 이미지 자체를 회수하기

    prune 후에도 여유 블록은 먼저 Linux 파일시스템 안에 생기고, macOS가 스파스 디스크에서 그 공간을 돌려받는 것은 그다음입니다. 현재 Docker 문서에 따르면 Docker.raw 이미지는 보통 수 초 안에 호스트에 반환 가능한 공간을 돌려줍니다. 예전 Docker.qcow2 이미지는 수분 걸릴 수 있는 백그라운드 과정을 씁니다. 파일의 논리적 최대 크기로 판단하지 말고 실제 디스크 사용량을 다시 측정하세요. 공장 초기화는 압축이 아닙니다. 로컬 컨테이너, 이미지, 볼륨, 설정을 모두 지웁니다. 그 전체 손실이 의도된 경우, 그리고 중요한 볼륨 데이터를 이미 내보낸 경우에만 사용하세요.

    내부 구조: 파일이 커지고 줄어들지 않는 이유

    Docker Desktop은 Linux VM을 실행하고, Docker.raw는 그 VM의 가상 디스크입니다. 게스트가 쓸수록 커지는 스파스 파일이며, 게스트가 지워도 macOS에 공간을 자동으로 돌려주지 않습니다. 이미지를 지우면 VM 파일시스템 안의 블록만 비워지고, 호스트 파일이 줄어들려면 게스트가 TRIM/discard를 발행하고 Docker Desktop이 discard와 압축으로 반환 가능한 블록을 돌려줄 수 있어야 합니다. 시점은 버전과 디스크 이미지 구현에 따라 달라집니다. 그래서 논리적 정리와 호스트 용량 변화를 따로 측정해야 하며, 호스트 파일을 지우는 것은 Docker 환경 전체를 파괴하는 것과 같습니다.

    희소 Docker.raw 파일이 게스트 VM이 쓰면서 커지고, discard와 컴팩션으로 회수 가능한 블록을 macOS에 돌려줄 수 있습니다
    Docker 객체를 지우면 먼저 VM 안의 공간이 비워집니다. macOS로 실제 할당량을 되돌리는 것은 별도의 스파스 디스크 단계입니다.

    디스크 맵이 도움이 되는 경우

    Mole의 Analyze 같은 디스크 맵은 가상 디스크와 그 실제 점유를 보여 줄 수 있습니다. 어떤 내부 객체가 참조 중인지는 Docker 자체 CLI가 판단해야 합니다. 두 관점은 다른 질문에 답합니다. macOS는 용량이 어디에 할당되었는지를 보여 주고, Docker는 그 할당 안에 무엇이 있는지를 설명합니다.

    안전한 작업 순서

    docker system df -v를 실행하고, 오래된 프로젝트와 상태를 담은 볼륨을 확인한 뒤, 고유 데이터를 내보내고, 한 범주씩 prune하세요. Docker 내부 합계와 macOS 실제 용량을 모두 다시 확인하세요. 넓은 prune 플래그는 범위가 어떻게 넓어지는지 검토한 뒤에만 쓰고, 공장 초기화를 일상적인 공간 확보 단축키로 쓰지 마세요. 가장 빠르고 안전한 이득은 보통 알 수 없는 볼륨이 아니라 오래된 빌드 캐시에서 옵니다.

    공간 정리부터 앱 관리, 시스템 유지보수, 디스크 분석, 상태 확인까지 하나의 네이티브 Mac 앱에 담았습니다. 평생 사용하고 구독은 없습니다.

    Mole 둘러보기

    이어서 읽기

    • 개발빌드를 깨지 않고 개발자 캐시 비우기4분 읽기
    • 개발릴리스 아티팩트를 잃지 않고 Xcode 정리하기4분 읽기
    • 개발Homebrew 안전하게 정리하기3분 읽기

    Mole · 鼴

    Mac 정리, 앱 관리, 상태 확인을 하나로.

    v1.13.0 (153) · 릴리스

    지원

    도움말 문서 릴리스

    약관

    이용약관 개인정보 처리방침 환불 정책

    리소스

    블로그 CLI 도구 파트너 프로그램

    소셜

    Twitter hi@mole.fit

    유일한 공식 사이트 mole.fit · 가짜 사이트의 위험한 다운로드에 주의

    터미널 사용자를 위한 CLI는 계속 무료입니다.