Docker에서 컨테이너를 영구적으로 삭제
일반적으로 Docker는 중지된 컨테이너를 삭제하지 않고 대신 태그만 해제합니다. 이 프로세스는 중지된 컨테이너가 실수로 삭제되는 것을 방지하기 위해 발생합니다.
이 문서에서는 Docker에서 리소스를 회수하기 위해 사용되지 않고 태그가 지정되지 않은 컨테이너를 올바르게 삭제하는 방법에 대해 설명합니다.
Docker에서 컨테이너를 영구적으로 삭제
Docker에는 특정 이미지를 강제로 삭제하는 제거 명령이 있습니다. 이 명령은 이미지의 경우 docker rmi -f <image_id>
이고 컨테이너의 경우 docker rm <container_id>
입니다.
그러나 서류상으로는 이 명령이 컨테이너 이미지를 삭제하지 않고 개체의 태그를 제거하여 소프트 삭제만 합니다.
docker image ls -a
명령을 사용하여 중지된 이미지를 확인하면 위의 명령이 이미지를 제거하는 대신 태그만 해제한다는 것을 확인할 수 있습니다.
출력 예:
Untagged: my_image:latest
다음 섹션에서는 도커 컨테이너를 영구적으로 제거하는 데 도움이 되는 여러 스크립트 및 매개 변수에 대해 설명합니다.
Docker에서 컨테이너 정리
Docker로 작업할 때 상당한 디스크 공간을 소비하고 Docker 명령으로 생성된 출력을 복잡하게 만드는 많은 미사용 개체가 빠르게 누적될 수 있습니다. 불행하게도 Docker는 명시적으로 지시하지 않는 한 컨테이너, 이미지, 볼륨 및 네트워크와 같이 태그가 지정되지 않고 사용되지 않는 개체를 제거하지 않습니다.
중지된 상태의 컨테이너를 삭제하여 컨테이너 프루닝으로 리소스를 빠르게 회수할 수 있습니다. 예를 들어 아래 명령을 사용할 수 있습니다.
예제 코드:
docker system prune -a
-a
플래그는 사용하지 않는 모든 이미지를 제거합니다. 실행 후 다음 메시지가 표시됩니다.
위 명령에 -f
force 플래그를 추가하여 이 메시지를 무시할 수 있습니다.
WARNING! This command will remove the following:
- all containers with the stopped status
- all network paths not used by at least one (1) container
- all images without at least one (1) container associated with them
- all cache
Are you sure you want to continue? [y/N]
또한 위의 명령은 이전에 사용하지 않은 Docker 컨테이너에 연결된 사용하지 않은 볼륨을 삭제하지 않습니다. 그러나 --volumes
매개변수를 추가하고 사용하여 미사용 볼륨 제거를 포함할 수 있습니다.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn관련 문장 - Docker Container
- Docker 컨테이너 내부에서 Docker 호스트의 IP 주소 가져오기
- Docker 컨테이너 다시 시작
- Docker 컨테이너가 실행 중인지 확인
- Docker 컨테이너와 Docker 이미지의 차이점
- Docker-Compose 파일에서 컨테이너 재구축
- Docker를 사용하여 백그라운드에서 컨테이너를 지속적으로 실행