로컬_시스템의_모든_컨테이너와_이미지_삭제

로컬 시스템의 모든 컨테이너와 이미지 삭제

시스템 상의 모든 Docker 컨테이너를 삭제할 때는 다음 명령어를 사용합니다.

$ docker rm -f $(docker ps -aq)

여기서 docker ps -aq는 Docker의 모든 컨테이너 ID를 가져오는 명령어입니다. 셸에서 $() 기법을 사용하면 명령어를 실행한 결과를 가져올 수 있습니다. 이 방법을 사용해 docker rm -f에 현재 시스템 상의 모든 컨테이너 ID를 전달합니다.

즉, 모든 컨테이너가 삭제됩니다.

아래 명령어는 모든 컨테이너를 삭제하는 좀 더 최신 버전입니다. 실행 결과는 같습니다.

$ docker container rm -f $(docker container ls -aq)

시스템 상의 모든 이미지를 삭제하는 명령어도 컨테이너를 삭제하는 명령어와 비슷합니다. docker images -q로 모든 이미지 ID를 가져와 docker rmi 명령어에 넘겨줍니다.

$ docker rmi $(docker images -q)

단, 이미지를 사용하는 컨테이너가 있는 경우 이미지를 삭제할 수 없습니다. 따라서 아래와 같이 모든 컨테이너를 삭제 후, 이미지를 삭제하는 것을 추천합니다. 두 명령어를 차례로 실행해주면 됩니다.

$ docker rm -f $(docker ps -aq)
$ docker rmi $(docker images -q)

아래 명령어는 전체 이미지를 삭제하는 좀 더 최신 버전입니다. 동작 방식이나 실행 결과는 같습니다.

$ docker image rm -f $(docker image ls -q)

Docker에서는 중지된 컨테이너나 dangling되었거나 사용하고 있지 않은 이미지만 한 번에 삭제할 수 있는 오브젝트 타입 별 prune 기능을 제공하고 있습니다. prune을 사용하면 현재 사용하지 않는 오브젝트만 삭제하기 때문에 좀 더 빠르고 안전하게 디스크 용량을 확보할 수 있습니다.

다음 명령어는 중지된 컨테이너를 삭제합니다.

$ docker container prune

다음 명령어는 dangling 상태의 이미지를 삭제해줍니다. dangling된 이미지는 이미지 목록에서 태그가 없어 <none>으로 보이는 이미지입니다.

$ docker image prune

a 옵션을 사용하면 dangling된 이미지와 컨테이너에서 사용되고 있지 않은 이미지를 모두 삭제해줍니다.

$ docker image prune -a

system prune을 사용하면 중지된 컨테이너, dangling된 이미지, 사용하지 않는 볼륨, 사용하지 않는 네트워크를 한꺼번에 삭제해줍니다. 사용하고 있지 않은 이미지도 함께 삭제하려면 a 옵션을 사용하면 됩니다.

$ docker system prune
로그인하면 댓글을 남길 수 있습니다.
  • 로컬_시스템의_모든_컨테이너와_이미지_삭제.txt
  • 마지막으로 수정됨: 2022/05/08 06:10
  • 저자 koov