Docker image 삭제 사용하지 않는 도커 이미지 일괄 정리 명령어

Docker image 삭제, 사용하지 않는 도커 이미지 일괄 정리 명령어

도커 이미지가 쌓여서 저장공간이 부족해지는 경우가 있으신가요? 개인적으로도 도커를 자주 사용하다 보니 Docker image 삭제 방법에 대해 한 번 정리해두면 편하겠다고 생각했어요. 특히 태그 없이 남아 있는 dangling 이미지들이 자꾸 쌓여 용량만 낭비하는 상황을 자주 마주했습니다. 오늘은 그런 불필요한 도커 이미지를 깔끔하게 정리할 수 있는 Docker image 삭제 명령어들을 소개해 드릴게요.

도커 이미지들 중 왜 사용하지 않는 dangling 이미지가 생길까요?

도커에서 이미지를 빌드할 때, 버전이 바뀌거나 태그가 바뀌면 이전에 만들어진 이미지들의 태그가 사라지고 이름도 <none>으로 남는데요. 이렇게 태그가 없는 이미지를 일명 dangling 이미지라고 불러요. 이런 이미지들은 실제 개발에 사용되지 않지만 저장공간만 차지해서, 필요 없는 파일들을 정리해야 저장 공간을 효율적으로 관리할 수 있습니다.

Docker image 삭제 전에, 먼저 어떤 이미지들이 쌓여 있는지 확인해볼까요?

삭제하기 전에 현재 어떤 고아 이미지들이 있는지 살펴보는 건 매우 중요합니다. 다음 명령어를 실행하면 <none> 상태인 이미지가 모두 조회 됩니다:

docker images -f “dangling=true”

더 깔끔하게 이미지 ID만 보고 싶다면 이렇게 입력할 수 있어요:

docker images -f “dangling=true” -q

그렇다면 Docker image 삭제는 어떻게 한번에 처리할 수 있을까요?

직접 한 개씩 삭제하는 건 번거로워서 실제 프로젝트에서는 잘 쓰지 않을텐데요. 저는 다음 방법을 자주 활용합니다:

docker rmi $(docker images -f “dangling=true” -q)

간단히 말씀드리면, 안에 괄호로 된 명령어가 먼저 고아 이미지 ID들을 전부 모으고, 그 결과를 docker rmi 명령어에 넘겨서 한방에 삭제하는 거예요. 덕분에 복잡하게 시간 낭비하지 않고 저장공간을 금세 확보할 수 있는 셈입니다.

Docker image 삭제 명령어, 상황 별로 어떤 걸 쓰면 좋을까요?

명령어 삭제 대상 적용 시점
docker image prune 태그 없는 이미지(고아 이미지) 안전하게 정리할 때
docker image prune -a 사용하지 않는 모든 이미지 주기적인 청소 때
docker system prune -a 이미지부터 볼륨, 컨테이너, 네트워크 전부 완전 초기화가 필요할 때

각 삭제 명령어, 좀 더 자세히 알아볼까요?

docker image prune는 가장 기본적이고 부담 없는 방법입니다. 태그 없는 이미지들만 골라서 정리하기 때문에, 작업 도중에 필요한 이미지를 실수로 삭제할 위험이 적습니다. 이는 주기적으로 사용하기 좋은 명령어라고 생각해요.

docker image prune -a는 좀 더 강력한데요, 사용 중이지 않은 모든 이미지를 삭제합니다. 태그가 붙어 있더라도 현재 컨테이너에서 사용하지 않는 이미지는 모두 지워버리기 때문에, 대청소 용도로 유용하지만 실행 전에는 한 번만 더 확인하는 게 좋습니다.

docker system prune -a는 도커 환경을 깔끔히 초기화하는 데 효과적이에요. 이미지, 컨테이너, 네트워크, 볼륨까지 전부 제거하니 신중하게 사용하셔야 합니다. 시스템 리셋이나 대규모 클린업이 필요할 때 선택하시면 됩니다.

정리 후에는 반드시 삭제가 잘 되었는지 점검할까요?

명령어 실행 뒤에는 꼭 docker images 명령어로 남아있는 이미지들을 점검하는 습관을 들이면 좋습니다. 기존에 <none> 상태였던 이미지들이 깨끗하게 사라졌다면 성공적으로 정리가 된 것입니다.

실무 꿀팁!

저는 리눅스의 크론(cron)을 활용해 정해진 요일마다 <none> 이미지들을 자동으로 삭제하는 스크립트를 실행합니다. 덕분에 저장공간 문제로 골치 아픈 상황을 거의 겪지 않게 되었어요. 윈도우 환경에서는 작업 스케줄러를 이용하시면 비슷한 자동화가 가능하니 참고하세요.

자주 묻는 질문

Docker에서 dangling 이미지는 무엇인가요?

태그 없는 고아 이미지를 말해요.

한 번에 Docker image 삭제 가능한 명령어가 있나요?

docker rmi $(docker images -f “dangling=true” -q)입니다.

자동 정리는 어떻게 할 수 있나요?

cron이나 작업 스케줄러를 이용하세요.