Docker에서 컨테이너를 영구적으로 삭제

Marion Paul Kenneth Mendoza 2023년6월20일
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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - Docker Container

관련 문장 - Docker Image