오래되고 사용하지 않는 Docker 이미지 제거

Isaac Tony 2023년6월20일
  1. 오래되고 사용하지 않는 Docker 이미지 제거
  2. 단일 Docker 이미지 제거
  3. 매달린 도커 이미지 제거
오래되고 사용하지 않는 Docker 이미지 제거

Docker를 사용하면 개발자가 컨테이너라고 하는 표준화된 단위로 애플리케이션을 래핑하여 종속성에 대한 걱정 없이 애플리케이션을 더 쉽게 빌드, 테스트 및 배포할 수 있습니다. 최근에는 다른 이점 중에서도 효율성으로 인해 Docker가 광범위하게 채택되었습니다.

Docker 이미지는 Docker 컨테이너의 기본 빌딩 블록이며 일반적으로 애플리케이션을 실행하는 데 필요한 코드, 시스템 도구, 라이브러리 및 기타 종속성으로 구성됩니다.

Docker를 사용하여 이미지를 만드는 일반적인 방법은 Docker 레지스트리에서 가져온 기본 이미지를 기반으로 이미지를 만드는 것입니다.

오래되고 사용하지 않는 Docker 이미지 제거

시간이 지남에 따라 생성된 이미지, 볼륨 및 컨테이너를 쉽게 추적할 수 있습니다. Docker는 정당한 이유 없이 Docker의 “스토리지 풀"을 사용할 수 있는 매달려 있거나 사용하지 않는 이미지와 컨테이너를 제거할 것을 권장합니다.

Dangling Docker 이미지는 대부분 완전히 잊어버린 시스템에서 이름이 지정되지 않은 오래된 이미지로 구성됩니다. 반면 미사용 이미지는 Docker 컨테이너에서 사용하지 않는 이미지입니다.

여러 가지 방법을 사용하여 Docker에서 사용하지 않는 이미지를 제거할 수 있습니다. 그러나 이미지를 제거하기 전에 이미지를 나열할 수 있어야 합니다.

docker images 명령을 사용하여 시스템의 모든 이미지를 나열할 수 있습니다.

암호:

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
new-image    latest    149077dac3e6   2 hours ago   932MB
<none>       <none>    22fa358b711d   2 weeks ago   929MB
myapp        latest    ee771b73a9ec   4 weeks ago   929MB
rabbitmq     latest    d4455d35bc06   8 weeks ago   221MB

또는 아래와 같이 ls 명령과 함께 docker image 명령을 사용하여 시스템의 이미지를 나열할 수도 있습니다.

$ docker image ls
new-image    latest    149077dac3e6   2 hours ago   932MB
<none>       <none>    22fa358b711d   2 weeks ago   929MB
myapp        latest    ee771b73a9ec   4 weeks ago   929MB
rabbitmq     latest    d4455d35bc06   8 weeks ago   221MB

Docker 이미지를 나열하면 해당 이미지를 제거하는 데 사용할 수 있는 Docker 이름 및 이미지 ID에 액세스할 수 있습니다.

단일 Docker 이미지 제거

Docker를 사용하면 실행 중인 컨테이너나 중지된 컨테이너에서 사용하지 않는 이미지만 제거할 수 있습니다. 컨테이너에서 사용하는 이미지를 제거하려고 하면 확실히 오류가 발생합니다.

docker rmi 명령은 이미지 이름 또는 이미지 ID를 사용하여 단일 Docker 이미지를 제거합니다.

$docker rmi 149077dac3e6
Error response from daemon: conflict: unable to delete 149077dac3e6 (must be forced) - image is being used by stopped container 841d1e8d8c25

즉, Docker 컨테이너를 제거할 때까지 이 이미지를 제거할 수 없습니다. docker rm <container_id> 명령을 사용하여 이 컨테이너를 제거할 수 있습니다.

이 작업이 완료되면 이미지는 이제 사용되지 않음이 되며 아래와 같이 제거할 수 있습니다.

암호:

$ docker rmi 149077dac3e6

출력:

Untagged: new-image:latest
Deleted: sha256:149077dac3e6f61c31ca98da741afd5d36147b69cacd945e3d53bd763ec7b420

docker rmi 명령과 함께 이름 또는 ID를 나열하기만 하면 사용하지 않는 여러 이미지를 제거할 수도 있습니다.

$ docker rmi ubuntu rabbitmq

출력:

Untagged: ubuntu:latest
Untagged: ubuntu@sha256:bea6d19168bbfd6af8d77c2cc3c572114eb5d113e6f422573c93cb605a0e2ffb
Deleted: sha256:ff0fea8310f3957d9b1e6ba494f3e4b63cb348c76160c6c15578e65995ffaa87
Deleted: sha256:867d0767a47c392f80acb51572851923d6d3e55289828b0cd84a96ba342660c7
Untagged: rabbitmq:latest
Untagged: rabbitmq@sha256:3d4c70ec5fc84c27efaeb56c50aafcac4fd8583b61398cc028e4876f84ae73d8
Deleted: sha256:d4455d35bc062a1c1847c2e83b8fae2f40a83075aad536f8bf82166c71431ad2
Deleted: sha256:84693641bf34ab0dee198b5b04c94c4c295626a4d29aacdeb8d17eaf200502ac
Deleted: sha256:8f76417ffbedd6e87b802960c31571aa49d14b058505475712e6ce8ee676718c
Deleted: sha256:a2fd31c374592ebd2e920f312aab1b27e592989a8af371c430fb8f915365bfb0
Deleted: sha256:b1d41dbdcd3cfe9eff61d43ecba57adf40bd26853fe2c7ab203f6f3bfbbe2761
Deleted: sha256:3560f714926f60121a89674e17510e4044f70be3229953fbbd82cb4eea6b1153
Deleted: sha256:4cd230fe05650d13ec67f7edde60fad03ab6cea3db52df798680294632ff62d3
Deleted: sha256:e535128bae717fe882e77c5283b08840efbf73e07eb65b1ef11df14ed4ea911f
Deleted: sha256:15d050b0b911cf148f48c6fb9ca3d654af4855504aee7791c7f7fce1c9fe1b21
Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f688797f2f1e3af224c29593310578d2

매달린 도커 이미지 제거

매달린 이미지는 태그가 지정된 이미지와 관계가 없는 이미지입니다. 이러한 이미지는 사용되지 않으므로 더 이상 시스템에서 어떤 용도로도 사용할 수 없으므로 제거해야 합니다.

-f 플래그를 사용하여 매달린 이미지를 나열하고 아래 docker images 명령과 함께 dangling=true를 설정할 수 있습니다.

암호:

$ docker images -f dangling=true

출력:

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
<none>       <none>    22fa358b711d   2 weeks ago   929MB

docker prune 명령을 사용하여 이러한 이미지를 제거합니다. 이 명령이 매달린 이미지를 모두 제거한다는 메시지가 표시됩니다.

이러한 이미지를 제거하려면 y(예)를 클릭하십시오.

$ docker image prune

출력:

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

마지막으로 사용하지 않는 이미지를 포함하여 시스템의 모든 이미지를 제거할 수도 있습니다. 그러나 이 옵션은 주의해서 사용해야 하며 시스템의 모든 이미지를 확실히 제거하려는 경우에만 사용해야 합니다.

시스템에서 사용하지 않는 이미지를 포함하여 모든 이미지를 제거하려면 먼저 docker images 명령과 -q-a 태그를 사용하여 이미지를 나열해야 합니다. 이제 아래 docker rmi 명령 아래에 이 명령을 중첩합니다.

암호:

$ docker rmi $(docker images -q -a)
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:bea6d19168bbfd6af8d77c2cc3c572114eb5d113e6f422573c93cb605a0e2ffb
Deleted: sha256:ff0fea8310f3957d9b1e6ba494f3e4b63cb348c76160c6c15578e65995ffaa87
Deleted: sha256:867d0767a47c392f80acb51572851923d6d3e55289828b0cd84a96ba342660c7
Deleted: sha256:22fa358b711d2ea3a1d72e59f062f6c7c38b414bdb253fb8d0def20222cadd93
작가: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

관련 문장 - Docker Image