기계적 인조 인간

도커 컨테이너, 이미지, 볼륨 및 네트워크를 제거하는 방법

What is Docker? Easy way

What is Docker? Easy way

차례:

Anonim

Docker를 사용하면 거의 모든 곳에서 실행할 수있는 휴대용의 자급 자족 컨테이너로 애플리케이션을 신속하게 빌드, 테스트 및 배포 할 수 있습니다.

Docker는 컨테이너, 이미지, 볼륨 및 네트워크와 같이 사용하지 않는 객체를 명시 적으로 지정하지 않는 한 제거하지 않습니다. Docker로 작업 할 때 상당한 디스크 공간을 소비하고 Docker 명령으로 생성 된 출력을 어지럽히는 많은 수의 사용하지 않는 객체를 쉽게 축적 할 수 있습니다.

이 안내서는 Docker 사용자가 시스템을 체계적으로 유지하고 사용하지 않는 Docker 컨테이너, 이미지, 볼륨 및 네트워크를 제거하여 디스크 공간을 확보하는 데 도움이되는“치트 시트”역할을합니다.

사용하지 않은 모든 객체 제거

docker system prune 명령은 중지 된 모든 컨테이너, 매달려있는 이미지 및 사용되지 않은 모든 네트워크를 제거합니다.

docker system prune

계속하라는 메시지가 표시되면 -f 또는 --force 플래그를 사용하여 프롬프트를 무시하십시오.

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue?

docker system prune --volumes

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y

도커 컨테이너 제거

--rm 플래그를 사용하여 컨테이너를 시작하지 않으면 컨테이너를 중지해도 Docker 컨테이너는 자동으로 제거되지 않습니다.

하나 이상의 용기 제거

하나 이상의 Docker 이미지를 제거하려면 docker container rm 명령과 제거하려는 컨테이너의 ID를 사용하십시오.

-a 플래그를 docker container ls 명령에 전달하여 모든 컨테이너 목록을 얻을 수 있습니다.

docker container ls -a

출력은 다음과 같아야합니다.

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani

삭제하려는 컨테이너의 CONTAINER ID 를 알고 나면 docker container rm 명령으로 전달하십시오. 예를 들어, 위 출력에 나열된 처음 두 컨테이너를 제거하려면 다음을 실행하십시오.

docker container rm cc3f2ff51cab cd20b396a061

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

멈춘 용기를 모두 제거하십시오

제거 명령을 수행하기 전에 다음 명령을 사용하여 제거 할 모든 비 실행 (중지 된) 컨테이너 목록을 얻을 수 있습니다.

docker container ls -a --filter status=exited --filter status=created

중지 된 모든 컨테이너를 제거하려면 docker container prune 명령을 사용하십시오.

docker container prune

계속하라는 메시지가 표시되면 -f 또는 --force 플래그를 사용하여 프롬프트를 무시하십시오.

WARNING! This will remove all stopped containers. Are you sure you want to continue? y

필터를 사용하여 용기 제거

docker container prune 명령을 사용하면 필터링 플래그 --filter 사용하여 조건에 따라 컨테이너를 제거 할 수 있습니다.

이 기사를 쓰는 시점에서 현재 지원되는 필터는 until label 입니다. 여러 개의 --filter 플래그를 사용하여 둘 이상의 필터를 사용할 수 있습니다.

예를 들어, 12 시간 이상 전에 작성된 모든 이미지를 제거하려면 다음을 실행하십시오.

docker container prune --filter "until=12h"

모든 용기를 멈추고 제거하십시오

docker container ls -aq 명령을 사용하여 시스템의 모든 Docker 컨테이너 목록을 얻을 수 있습니다.

실행중인 모든 컨테이너를 중지하려면 docker container stop 명령과 모든 컨테이너 ID 목록을 사용하십시오.

docker container stop $(docker container ls -aq)

모든 컨테이너가 중지되면 docker container rm 명령과 컨테이너 ID 목록을 사용하여 docker container rm 제거 할 수 있습니다.

docker container rm $(docker container ls -aq)

도커 이미지 제거

하나 이상의 이미지 제거

하나 이상의 Docker 이미지를 제거하려면 docker images ls 명령을 사용하여 제거 할 이미지의 ID를 찾으십시오.

docker image ls

출력은 다음과 같아야합니다.

REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB

제거하려는 이미지를 docker image rm 으면 해당 IMAGE ID docker image rm 명령으로 전달하십시오. 예를 들어, 위 출력에 나열된 처음 두 이미지를 제거하려면 다음을 실행하십시오.

docker image rm 75835a67d134 2a4cca5ac898

Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134

매달려있는 이미지 제거

Docker는 매달려 있고 사용하지 않는 이미지를 제거하는 데 사용할 수있는 docker image prune 명령을 제공합니다.

매달려있는 이미지는 태그가 지정되지 않았으며 컨테이너에서 사용되지 않는 이미지입니다. 매달린 이미지를 제거하려면 다음을 입력하십시오.

docker image prune

계속하라는 메시지가 표시되면 -f 또는 --force 플래그를 사용하여 프롬프트를 무시하십시오.

WARNING! This will remove all dangling images. Are you sure you want to continue? y 매달려있는 이미지를 제거 할 때 사용자가 만든 이미지에 태그가없는 경우 이미지도 제거됩니다.

사용하지 않은 모든 이미지 제거

매달려있는 컨테이너뿐만 아니라 기존 컨테이너가 참조하지 않는 모든 이미지를 제거하려면 prune 명령을 -a 플래그와 함께 사용하십시오.

docker image prune -a

WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y

필터를 사용하여 이미지 제거

docker image prune 명령을 사용하면 필터링 플래그 --filter 사용하여 특정 조건에 따라 이미지를 제거 할 수도 있습니다.

이 기사를 쓰는 시점에서 현재 지원되는 필터는 until label 입니다. 여러 개의 --filter 플래그를 사용하여 둘 이상의 필터를 사용할 수 있습니다.

예를 들어, 12 시간 이상 전에 작성된 모든 이미지를 제거하려면 다음을 실행하십시오.

docker image prune -a --filter "until=12h"

도커 볼륨 제거

하나 이상의 볼륨 제거

하나 이상의 Docker 볼륨을 제거하려면 docker volume ls 명령을 사용하여 제거하려는 볼륨의 ID를 찾으십시오.

docker volume ls

출력은 다음과 같아야합니다.

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

제거하려는 볼륨의 VOLUME NAME 을 찾으면 docker volume rm 명령으로 전달하십시오. 예를 들어, 위 출력에 나열된 첫 번째 볼륨을 제거하려면 다음을 실행하십시오.

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -

사용하지 않은 볼륨을 모두 제거하십시오.

사용되지 않은 모든 볼륨을 제거하려면 docker image prune 명령을 사용하십시오.

docker volume prune

계속하라는 메시지가 표시되면 -f 또는 --force 플래그를 사용하여 프롬프트를 무시하십시오.

WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?

도커 네트워크 제거

하나 이상의 네트워크 제거

하나 이상의 Docker 네트워크를 제거하려면 docker network ls 명령을 사용하여 제거 할 네트워크의 ID를 찾으십시오.

docker network ls

출력은 다음과 같아야합니다.

NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local

제거하려는 네트워크를 찾으면 해당 NETWORK ID docker network rm 명령으로 전달하십시오. 예를 들어 이름이 my-bridge-network 네트워크를 제거하려면 다음을 실행하십시오.

docker network rm c520032c3d31

Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

사용하지 않는 네트워크를 모두 제거하십시오

docker network prune 명령을 사용하여 사용하지 않는 모든 네트워크를 제거하십시오.

docker network prune

계속하라는 메시지가 표시되면 -f 또는 --force 플래그를 사용하여 프롬프트를 무시하십시오.

WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?

필터를 사용하여 네트워크 제거

docker network prune 명령을 사용하면 필터링 플래그 --filter 사용하여 조건에 따라 네트워크를 제거 할 수 있습니다.

이 기사를 쓰는 시점에서 현재 지원되는 필터는 until label 입니다. 여러 개의 --filter 플래그를 사용하여 둘 이상의 필터를 사용할 수 있습니다.

예를 들어, 12 시간 이상 전에 작성된 모든 네트워크를 제거하려면 다음을 실행하십시오.

docker network prune -a --filter "until=12h"

결론

이 가이드에서는 Docker 컨테이너, 이미지, 볼륨 및 네트워크를 제거하는 일반적인 명령 중 일부를 보여주었습니다.

공식 Docker 설명서도 확인하십시오.

도커