
최근 도커(Docker) 기반 서비스에서 연결이 끊기거나 응답이 없는 문제가 발생하였습니다.
확인해 보니 디스크 용량이 거의 차 있었고, 그 원인은 댕글링 이미지였습니다.
이 글에서는 도커에서 발생한 댕글링 이미지로 인한 디스크 부족 문제를 어떻게 확인하고 해결했는지에 대한 기록입니다.
✔️ 댕글링 이미지가 무엇인지
✔️ 왜 생기는지
✔️ 어떻게 관리/정리하는지
1. 댕글링(Dangling) 이미지란?
태그(tag)를 잃어버린 이미지, 즉 “어떤 이름도 가리키지 않는 이미지”를 말합니다.
docker images 명령을 실행하면 TAG 컬럼에 <none>으로 확인되는 이미지가 바로 댕글링 이미지입니다.

겉보기엔 쓰이지 않는 이미지처럼 보이지만, 이미지 레이어 자체는 디스크에 그대로 남아 있어 공간을 차지하게 됩니다.
2. 댕글링 이미지가 생기는 과정
(1) latest 태그로 pull 받을 때
- 도커 허브에서 이미지(A)를 태그(tag) 없이 pull → 자동으로 latest 태그(tag)가 붙습니다.
- 이후 동일한 이미지가 새로 빌드/배포되어 다시 pull 받습니다. (이미지 B)
- 새 이미지(B)에 latest가 붙고, 기존 이미지(A)는 태그(tag)가 사라집니다.
태그를 잃은 기존 이미지(A) = 댕글링 이미지입니다.
(2) 이미 사용 중인 이미지를 강제 삭제할 때
보통은 1) 컨테이너 삭제 2) 이미지 삭제 이 순서로 진행해야 합니다.
하지만 docker rmi -f <IMAGE_ID> 명령어로 강제 삭제 시 이미지 레이어를 완전히 제거하지 못하고, 이름만 사라져서 <none> 상태로 남을 수 있습니다.
3. 해결 방법 (댕글링 이미지 관리 & 정리)
(1) 버전 태그(tag)로 이미지 pull 받기
이미지를 pull 받을 때는 가능하면 태그(tag)를 함께 쓰는 것이 좋습니다.
docker pull nginx:1.27
태그(tag)를 사용하면 댕글링 이미지 생성은 막을 수 있지만,
이전 버전 이미지가 계속 쌓여 디스크를 차지하는 문제는 여전히 존재하게 됩니다.
(2) 주기적으로 댕글링 이미지 정리
댕글링 이미지만 정리하려면, 아래의 명령어를 사용하면 됩니다.
docker image prune
(3) 스크립트로 자동 정리(추천 ⭐)
이미지 pull 받고 댕글링 이미지를 정리하는 sh 스크립트를 생성하여 이미지를 자동으로 정리할 수 있습니다.
- pull + 댕글링 이미지 정리
#!/usr/bin/env bash
docker pull "$1" && docker image prune -f
- sh 스크립트 사용
./pull_clean.sh nginx:1.27