Docker 빌드나 컨테이너 재시작 중 no space left on device가 나오면 무작정 docker system prune -a부터 실행하기 쉽습니다. 그러나 미사용 볼륨이나 이미지에 복구에 필요한 데이터가 있을 수 있습니다. 파일시스템 용량, inode, Docker 사용량을 차례로 확인한 뒤 영향이 작은 항목부터 정리해야 합니다.
1. 디스크 용량과 inode를 먼저 구분한다
df -h
df -i
docker system df
df -h는 바이트 기준 여유 공간, df -i는 파일 개수 한도인 inode를 보여줍니다. 작은 로그 파일이 매우 많으면 용량이 남아도 inode 부족으로 같은 오류가 날 수 있습니다. docker system df에서는 이미지, 컨테이너, 로컬 볼륨, 빌드 캐시가 차지한 공간과 회수 가능량을 확인합니다.
증상확인 명령첫 조치
| 루트 파티션 100% | df -h | 큰 로그와 캐시 위치 확인 |
| inode 100% | df -i | 작은 파일 다량 생성 원인 확인 |
| Docker 사용량 큼 | docker system df -v | 종료 컨테이너·미사용 이미지 검토 |
| 빌드 중 실패 | docker builder du | 빌드 캐시 검토 |

2. 컨테이너 로그가 커졌는지 확인한다
기본 json-file 로그 드라이버에서 로그 순환을 설정하지 않으면 단일 컨테이너 로그가 계속 커질 수 있습니다. 실행 중인 컨테이너의 로그 파일을 임의로 삭제하거나 이동하기보다 Docker 데몬 또는 Compose의 logging.options에 max-size와 max-file을 설정하고 재배포합니다. 설정 예시는 Docker 로그 확인과 용량 제한에서 확인할 수 있습니다.
3. 종료 컨테이너와 미사용 이미지를 분리해 정리한다
docker container prune
docker image prune
docker image prune -a
각 명령이 보여주는 삭제 후보를 먼저 확인합니다. docker image prune은 dangling 이미지를, -a는 어떤 컨테이너에서도 사용하지 않는 이미지까지 대상으로 삼습니다. 롤백에 쓸 이전 이미지가 필요한 운영 서버에서는 이미지 태그와 레지스트리 보관 여부를 확인한 뒤 실행해야 합니다.
4. 빌드 캐시는 사용량을 보고 정리한다
CI 서버나 반복 빌드 환경에서는 빌드 캐시가 큰 비중을 차지합니다. Docker 공식 docker system prune 문서는 종료 컨테이너, 미사용 네트워크, dangling 이미지, 빌드 캐시를 기본 정리 대상으로 설명합니다. 한 번에 전체를 지우기보다 docker builder prune으로 빌드 캐시만 분리해 정리하면 영향 범위를 줄일 수 있습니다.
5. 볼륨은 가장 마지막에 검토한다
볼륨에는 데이터베이스 파일과 업로드 자료가 있을 수 있습니다. docker volume prune이나 docker system prune --volumes는 백업과 마운트 관계를 확인한 뒤에만 사용해야 합니다. 현재 볼륨 목록과 연결 컨테이너를 확인하는 방법은 Docker 볼륨과 바인드 마운트 차이를 참고하세요.
6. 재발 방지 설정
- 로그 순환과 보관 기간을 서비스별로 설정합니다.
- 디스크 사용률 70%, 80%, 90% 단계의 알림을 둡니다.
- CI 빌드 캐시 정리 주기와 롤백 이미지 보관 수를 문서화합니다.
- 데이터 볼륨은 별도 디스크와 백업 정책으로 분리합니다.
- Docker 데이터 루트를 옮길 때는 공식 스토리지 드라이버 요구사항을 확인합니다.
Docker Engine 29의 신규 설치에서는 이미지 저장 방식 관련 기본값이 달라질 수 있으므로 오래된 블로그 글의 디렉터리 구조만 믿지 말고 현재 버전의 공식 문서를 확인해야 합니다.
7. 자주 묻는 질문
Q. docker system prune -a를 바로 실행해도 되나요?
삭제 후보와 롤백 이미지, 중지 컨테이너를 확인하지 않았다면 권장하지 않습니다.
Q. 실행 중 컨테이너는 삭제되나요?
기본 prune은 실행 중 컨테이너 자체를 제거하지 않지만, 미사용 자원 판단과 운영 절차를 반드시 확인해야 합니다.
Q. 정리 후에도 오류가 계속되면?
inode, 다른 파티션, 컨테이너 레이어 외의 시스템 로그와 애플리케이션 임시 파일을 확인합니다.
공식 자료: Docker system prune · Docker storage drivers (확인일: 2026-09-22)
'소프트웨어개발' 카테고리의 다른 글
| 기업용 VPN과 ZTNA 차이: 원격접속 보안 솔루션 선택 기준 (0) | 2026.09.22 |
|---|---|
| AWS Savings Plans와 Reserved Instances 비교: EC2 비용 절감 선택법 (0) | 2026.09.22 |
| H.265 CCTV가 브라우저에서 안 나올 때: H.264·WebRTC·HLS 해결법 (0) | 2026.09.14 |