본문 바로가기

About/Docker

[Docker] Docker 이미지 정리하기: 불필요한 이미지 제거하는 완벽 가이드

 

Docker 이미지 관리는 시스템의 성능과 공간 효율성을 유지하기 위해 중요합니다. 오래되거나 사용하지 않는 이미지를 제거하는 것은 디스크 공간을 확보하고, 관리를 용이하게 하며, 보안을 강화할 수 있습니다. 이 글에서는 Docker 이미지를 효과적으로 정리하는 방법에 대해 설명합니다.

Docker 이미지 제거의 기본

Docker에서 이미지를 제거하는 가장 기본적인 명령어는 docker image rm 입니다. 이 명령어는 하나 이상의 이미지를 제거하는 데 사용됩니다.

docker image rm [OPTIONS] IMAGE [IMAGE...]

 

옵션으로는 -f 또는 --force를 사용하여 이미지의 강제 삭제를 할 수 있고, --no-prune 옵션을 사용하여 태그되지 않은 부모 이미지를 삭제하지 않도록 할 수 있습니다.

Docker 이미지 정리 명령어 사용

docker image prune 명령어는 사용하지 않는 이미지를 제거하는 데 사용됩니다. 이 명령어는 기본적으로 사용되지 않는 모든 이미지를 제거하며, -a 옵션을 사용하면 어떤 컨테이너에도 참조되지 않는 모든 이미지를 제거할 수 있습니다.

docker image prune -a

 

시간 기반 필터링 사용

시간 기반 필터를 사용하여 특정 시간 이전에 생성된 이미지만 제거할 수도 있습니다. 예를 들어, 2017-01-04T00:00:00 이전에 생성된 모든 이미지를 제거하려면 다음과 같은 명령어를 사용합니다.

docker image prune -a --force --filter "until=2017-01-04T00:00:00"

 

또한, 240h (10일) 이상 된 이미지를 제거하려면 다음과 같이 명령합니다.

docker image prune -a --force --filter "until=240h"

 

레이블 필터 사용

레이블 필터를 사용하여 특정 레이블이 있는 이미지만 제거할 수 있습니다. 예를 들어, deprecated 레이블이 있는 이미지를 제거하려면 다음과 같이 명령합니다.

docker image prune --filter="label=deprecated"

 

레이블을 사용하여 더 복잡한 필터링도 가능합니다. 예를 들어, maintainer 레이블이 john으로 설정된 이미지만 제거하거나, maintainer 레이블이 없는 이미지를 제거할 수 있습니다.

docker image prune --filter="label=maintainer=john"
docker image prune --filter="label!=maintainer"

 

결론

Docker 이미지를 정기적으로 정리하면 시스템의 성능을 최적화하고 필요하지 않은 자원의 낭비를 방지할 수 있습니다. docker image rmdocker image prune 명령어를 사용하여 효과적으로 이미지를 관리할 수 있습니다. 필요에 따라 시간 기반 필터링이나 레이블 필터링을 사용하여 더 세밀한 제어가 가능합니다.

자세한 내용은 Docker 공식 문서에서 확인할 수 있습니다.