상세 컨텐츠

본문 제목

[Docker] none 이미지 정리하기 (Dangling Images Remove)

프로그래밍/Server

by 웰치스짱 2023. 4. 7. 17:40

본문

반응형

 

내가 원하는 이미지를 빌드 후 이미지 리스트를 출력 해 봤더니, 레포지토리명과 태그가 모두 none으로 되어 있었다.

이는 빌드 할 때, 이미 존재하는 레포지토리:태그명과 중복된 상태로 빌드를 해서 그렇다고 한다.

또한 이미지 빌드중에 에러가 발생하여 온전하게 빌드 되지 못하였을 때 해당 증상이 나타난다.

이런 현상이 나타난 이미지를 Dangling Image라고 표현을 한다.

 

이런 이미지는 공간만 차지하고 지워지지 않으면 서버의 용량을 모두 채울정도로 커지게 되니 주기적으로 지워야 한다.

 

삭제방법은 여러가지가 있는데 아래와 같다.

 

$ docker system prune [OPTIONS]

# [OPTIONS]
# --a, -a	: dangling된 것 뿐만 아니라, 모든 사용하지않는 컨테이너 종료 및 이미지 삭제

간단하게 하면

$ docker image prune 

# dangling된 이미지 삭제

전체 이미지를 모두 삭제하려면

$ docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
ubuntu        20.04     ba6acccedd29   2 months ago    72.8MB
mariadb       10.4.11   bc20d5f8d0fe   23 months ago   355MB

레포 이름과 태그를 정한 후 삭제하려면

docker rmi $(docker images -a|grep "<none>"|awk '$1=="<none>" {print $3}')

 

해당 명령어를 crontab에 등록하여 주기적으로 돌리면 되겠다.

 

반응형

관련글 더보기

댓글 영역