Docker는 요즘 기업에서 가장 인기 있는 제품 중 하나입니다. 컨테이너에서 애플리케이션을 관리하는 프로세스를 매우 쉽게 만들어 줍니다. Docker는 컨테이너를 사용하기 때문에 애플리케이션에 이식성, 성능, 민첩성, 확장성 및 격리성을 제공합니다. 컨테이너는 가상 머신보다 이식성이 더 뛰어나고 리소스를 덜 소모합니다. Docker를 사용하다 보면 사용하지 않는 이미지, 볼륨, 컨테이너가 과도하게 쌓이기 마련입니다. 이러한 리소스는 출력을 복잡하게 만들고 많은 디스크 공간을 차지합니다. 이 튜토리얼에서는 Docker 리소스를 정리하고 서버를 정돈하는 방법을 배웁니다.
모두 정리하기
단일 명령어로 이미지, 중지된 컨테이너, 볼륨, 네트워크를 포함한 모든 Docker 리소스를 정리할 수 있습니다. 아래 옵션 중 하나를 선택할 수 있습니다:
참고: Dangling 리소스는 실행 중인 어떤 컨테이너와도 관련이 없는 리소스입니다.
옵션 1:
|
1 |
docker system prune |
– 중지된 모든 컨테이너
– 최소 하나 이상의 컨테이너에서 사용되지 않는 모든 네트워크
– 모든 dangling 이미지
– 모든 dangling 빌드 캐시
옵션 2:
|
1 |
docker system prune -a |
– 중지된 모든 컨테이너
– 최소 하나 이상의 컨테이너에서 사용되지 않는 모든 네트워크
– 연결된 컨테이너가 최소 하나도 없는 모든 이미지
– 모든 빌드 캐시
옵션 3:
|
1 |
docker system prune -a --volumes |
– 중지된 모든 컨테이너
– 최소 하나 이상의 컨테이너에서 사용되지 않는 모든 네트워크
– 최소 하나 이상의 컨테이너에서 사용되지 않는 모든 볼륨
– 연결된 컨테이너가 최소 하나도 없는 모든 이미지
– 모든 빌드 캐시

Docker 이미지 삭제하기
특정 이미지를 삭제하려면 해당 이미지 ID를 알아야 합니다. 다음 튜토리얼에서 설명한 대로 “docker images” 명령어를 사용하여 Docker 컨테이너의 이미지 ID를 찾을 수 있습니다: Ubuntu에서 Docker를 설치 & 운영하는 방법.
이미지 목록 조회:
|
1 |
docker images |
이미지 삭제:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
docker rmi <Image ID> 예시: docker rmi 1d622ef86b13 출력: Untagged: ubuntu:latest Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7 Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01 Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3 Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47 Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387 Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f |
Dangling 이미지 삭제하기:
Docker 이미지를 빌드할 때 일반적으로 여러 레이어의 이미지가 생성됩니다. Dangling 이미지는 태그가 지정된 어떤 이미지와도 관계가 없는 레이어입니다. Dangling 이미지는 디스크 공간을 차지하지만 아무런 용도가 없습니다. 다음 명령어를 사용하여 목록을 확인할 수 있습니다:
|
1 |
docker images -f dangling=true |
다음 명령어를 실행하여 이러한 이미지를 삭제할 수 있습니다:
|
1 |
docker image prune |
패턴 기준 이미지 삭제하기
“grep” 명령어를 사용하여 특정 패턴을 기반으로 이미지를 쉽게 찾은 다음, “awk”를 사용하여 “docker rmi” 명령어에 전달하여 삭제할 수 있습니다. 다음 명령어를 사용하고 각 명령어에서 “pattern”을 변경하여 사용할 수 있습니다:
목록 조회:
|
1 |
docker images -a | grep "pattern" |
삭제:
|
1 |
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi |
모든 이미지 삭제
다음 명령어를 사용하여 모든 Docker 이미지를 나열할 수 있습니다:
|
1 |
docker images -a |
모두 삭제하기로 결정했다면, 다음 명령어를 사용하여 모두 삭제할 수 있습니다:
|
1 |
docker images -a -q | xargs docker rmi |
컨테이너 삭제:
불필요한 이미지를 모두 정리했으므로, 이제 필요하지 않은 일부 컨테이너를 삭제할 차례입니다.
컨테이너를 나열하려면 다음 명령어를 사용할 수 있습니다:
|
1 |
docker ps -a |
컨테이너를 삭제하려면 다음 명령어를 사용하세요:
|
1 |
docker rm <<컨테이너 이름/컨테이너 ID>> |
임시로 컨테이너 실행하기
컨테이너를 한 번만 실행하려는 경우, 컨테이너가 종료될 때 자동으로 삭제되도록 선택할 수 있습니다. 다음 명령어를 사용하여 이 작업을 수행할 수 있습니다:
|
1 |
docker run --rm <<이미지이름>> |
종료된 컨테이너 삭제
“-f” 인수를 사용하여 종료된 컨테이너를 필터링할 수 있습니다. 다음 명령어를 사용하여 종료된 컨테이너를 나열합니다:
|
1 |
docker ps -a -f status=exited |
필터링을 완료했다면, 다음 명령어를 사용하여 삭제하세요:
|
1 |
docker rm $(docker ps -a -f status=exited -q) |
패턴 기준 컨테이너 삭제
“grep” 명령어를 사용하여 특정 패턴을 기반으로 컨테이너를 쉽게 찾은 다음, “awk”를 사용하여 “docker rm” 명령어에 전달하여 삭제할 수 있습니다. 다음 명령어를 사용하고 각각의 “pattern”을 원하는 패턴으로 바꾸십시오.
목록:
|
1 |
docker ps -a | grep "pattern" |
삭제:
|
1 |
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm |
모든 컨테이너 중지 및 삭제
그렇게 하기 전에, 서버의 모든 컨테이너를 나열하여 검토하십시오. 정말로 삭제하려는 것이 확실한 경우에만 다음 명령어를 실행하십시오:
검토할 컨테이너 목록 나열:
|
1 |
docker ps -a |
중지 및 삭제:
|
1 2 |
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) |
볼륨 삭제
특정 볼륨 삭제
특정 볼륨을 삭제하려면 볼륨 이름을 알아야 합니다. 이를 확인하려면 볼륨 목록을 나열하면 됩니다.
목록:
|
1 |
docker volume ls |
삭제:
|
1 |
docker volume rm <<볼륨이름>> |
대글링 볼륨 삭제
컨테이너를 삭제할 때 컨테이너에 연결된 볼륨은 자동으로 삭제되지 않습니다. 이러한 볼륨을 대글링(dangling) 볼륨이라고 합니다. 이러한 볼륨을 찾으려면 명령어에서 필터 인수를 사용하십시오:
|
1 |
docker volume ls -f dangling=true |
이러한 대글링 볼륨을 모두 삭제하려면 다음 명령어를 사용하십시오:
|
1 |
docker volume prune |
컨테이너 및 이름 없는 볼륨 삭제
컨테이너를 실행하는 동안 익명 또는 이름 없는 볼륨을 생성한 경우, 단일 명령어를 사용하여 컨테이너와 함께 삭제할 수 있습니다. 그러나 볼륨에 이름이 지정되어 있으면 컨테이너만 삭제됩니다.
|
1 |
docker rm -v <<컨테이너이름>> |
이제 이 치트 시트를 얻었으니, 서버에서 필요하지 않은 Docker 리소스를 정리할 준비가 되었을 것입니다.
즐거운 컴퓨팅 되세요!


댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.