728x90
반응형

도커에서 동일한 태그를 가진 이미지를 빌드할 경우 기존에 있던 이미지는 삭제되지 않고 tag 가 <none> 으로 변경된 상태로 남아있게 된다. 아래의 사진을 보면 mysql 5.7 버전을 다시 빌드했을 때 기존에 있던 이미지의 태그가 <none> 으로 변경된 것을 확인할 수 있다.

이렇게 더 이상 컨테이너에 연결되지 않고 태그가 없어진 이미지를 Dangling image 라고 한다.
이러한 dangling 이미지를 그대로 방치하게 되면 파일 시스템의 용량을 차지하게 되고 이미지를 확인하는데 불편함이 생길 수 있다.

 

따라서, dangling 이미지를 조회하고 삭제하려고 한다.
dangling image 는 다음과 같이 조회할 수 있다.

-f 옵션 은 필터를 지정하는 옵션이다. 따라서 필터를 통해 dangling 의 값이 true 인 이미지만 가져오라는 명령어다.

이렇게 조회한 dangling image 는 다음과 같이 삭제할 수 있다.

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

마지막에 -q 옵션 은 이미지의 id 값만 출력해주는 옵션이다.
따라서, dangling image 파일만 찾아서 id 값을 가져오고 실행 결과를 가져와 docker rmi 명령어로 삭제할 수 있다.

 

도커 1.25 버전 이상부터는 다음 명령을 통해 dangling image 를 삭제할 수 있다고 한다.

image 뿐만 아니라 컨테이너, 볼륨, 네트워크, 시스템 등을 삭제할 수 있다.

docker image prune

-a 옵션 이 있는데 dangling image 뿐만 아니라 전체 이미지를 삭제하므로 주의해야 한다.

 

참고 사이트

https://sarc.io/index.php/aws/1921-docker

 

728x90
반응형
복사했습니다!