도커에서 동일한 태그를 가진 이미지를 빌드할 경우 기존에 있던 이미지는 삭제되지 않고 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
'DevOps > Docker' 카테고리의 다른 글
docker entrypoint.sh 파일의 exec $@ (0) | 2023.05.28 |
---|---|
docker-compose 실행과 동시에 종료 (docker-compose exited with code 0) (0) | 2023.05.28 |
Docker Mysql 5.7 설치하기 (0) | 2023.03.08 |
What is Docker (2) | 2023.02.03 |
Error response from daemon: Bad response from Docker engine (0) | 2022.11.25 |