Docker에서 모든 컨테이너 및 이미지 제거
전제 조건: 도커
~ 안에 도커 , 컨테이너를 중지하지 않고 종료한 경우 종료 시 중지되지 않았으므로 수동으로 중지해야 합니다. 마찬가지로 이미지의 경우 일부 컨테이너나 이미지가 기본 이미지에 종속될 수 있으므로 위에서 아래로 삭제해야 합니다. 언제든지 기본 이미지를 다운로드할 수 있습니다. 따라서 현재 컴퓨터에서 원치 않거나 매달린 이미지를 삭제하는 것이 좋습니다.
Docker에서 이미지를 삭제하는 방법은 무엇입니까?
이미지 제거
ImageId/Name으로 이미지를 삭제하려면 다음 명령을 사용할 수 있습니다. Dockerfile을 사용하여 Docker 이미지를 빌드하는 방법에 대한 자세한 내용은 Dockerfile 개념을 참조하세요.
docker rmi
이미지 강제 제거
ImageID/Name으로 Docker 이미지를 강제로 제거하려면 다음 명령을 사용할 수 있습니다.
docker rmi -f
메모: 컨테이너가 실행되는 동안 강제로 또는 정상적으로 이미지를 제거할 수 없습니다.
매달려 있는 이미지
매달린 이미지는 저장소나 태그에 매핑되지 않는 이미지입니다. 사용된 명령은 매달린 이미지를 제거하는 것입니다. Docker 이미지 태그 를 참조하여 Docker 이미지에 태그를 지정하는 방법에 대해 자세히 알아보세요.
docker image prune
모든 이미지 제거
docker-machine에서 모든 이미지를 제거하여 시스템에서 원치 않는 혼란과 공간을 제거할 수 있습니다. 어쨌든 Docker 레지스트리나 캐시에서 최신 버전이나 특정 버전의 이미지를 가져올 수 있습니다.
docker rmi $(docker images -q)
Docker에서 컨테이너를 삭제하는 방법
컨테이너를 삭제하기 전에 먼저 명령을 사용하여 컨테이너를 중지해야 합니다.
docker stop
Docker Stop과 Docker Kill의 차이점
Docker 중지는 SIGKILL 신호와 유예 기간을 사용하여 프로세스를 종료하기 전에 먼저 SIGTERM 신호를 보냅니다. Docker kill이 SIGKILL을 보내면 즉시 프로세스를 종료합니다.
- 실행 중인 모든 컨테이너를 중지합니다. 종료되지 않은 컨테이너를 중지하기 위해. Docker 이미지에 사용된 명령이 계속 실행 중인 경우 이러한 상황이 발생할 수 있습니다. 명령을 종료해야 하며 그러면 컨테이너가 중지됩니다. 명령을 중지하여 컨테이너를 종료하지 않은 경우 컨테이너를 중지하려면 다음 명령을 실행해야 합니다.
docker stop $(docker ps -aq)
- 컨테이너 삭제: 컨테이너가 중지되면 다음 명령을 사용하여 컨테이너를 삭제할 수 있습니다.
docker rm
- 컨테이너 강제 삭제: 아래 명령을 사용하면 실행 중인 컨테이너를 중지하지 않고 강제로 제거할 수 있습니다.
docker rm -f
모든 컨테이너 제거
도커 머신에서 모든 컨테이너를 제거하려면 모든 컨테이너의 ID를 가져와야 합니다. 다음 명령을 사용하여 컨테이너의 ID를 간단히 얻을 수 있습니다. 도커 ps -aq , 그런 다음 docker rm 명령을 사용하여 docker-machine의 모든 컨테이너를 제거할 수 있습니다.
docker rm $(docker ps -aq)
중지된 컨테이너 모두 제거
중지/종료된 모든 컨테이너를 제거하려면 ps 명령 인수에 필터를 사용할 수 있습니다. 컨테이너가 중지되지 않으면 컨테이너를 직접 제거할 수 없습니다. docker의 ps 명령에 -f 인수를 사용하여 종료되지 않았거나 실행 중인 컨테이너를 중지할 수 있습니다. -f 또는 –filter 옵션은 status=exited 또는 status=running 또는 name 등과 같은 필터를 사용합니다. 요구 사항에 따라 특정 컨테이너를 중지하기 위해 필터링할 수 있습니다.
docker rm $(docker ps -aq --filter status='exited')
실행 중인 컨테이너를 필터링한 후 stop 명령을 사용하여 -q로 해당 컨테이너를 중지하여 해당 컨테이너와 연결된 숫자 ID를 침묵시킬 수 있습니다.
docker stop $(docker ps --filter status=running -q)
이렇게 하면 모든 컨테이너가 중지되므로 이제 docker-machine에서 컨테이너를 제거할 수 있습니다. 여기에서 중지된 컨테이너를 필터링하여 상태가 종료된 컨테이너만 제거할 수도 있습니다.
docker rm $(docker ps --filter status=exited -q)
- 아래 명령은 기존 상태의 모든 컨테이너를 제거했습니다. 이는 컨테이너가 중지되었음을 의미합니다.
docker container prune