도커의 이미지를 삭제하려면 어떻게 해야 합니까?
다음과 같은 이미지가 있습니다.
alex@alexvps:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 70c0e19168cf 5 days ago 1.069 GB
<none> <none> c2ce80b62174 8 days ago 399.2 MB
<none> <none> 60afe4036d97 8 days ago 325.1 MB
그 중 하나를 제거하려고 하면 다음과 같은 결과가 나옵니다.
alex@alexvps:~$ sudo docker rmi 60afe4036d97
Error: Conflict, 60afe4036d97 wasn't deleted
2014/01/28 00:54:00 Error: failed to remove one or more images
어떻게 제거할 수 있습니까?왜 그런 갈등이 있는 거지?
모든 이미지를 삭제하려면 지정된 명령을 사용합니다.
docker rmi $(docker images -q)
모든 컨테이너를 삭제하려면 지정된 명령을 사용합니다.
docker rm $(docker ps -a -q)
경고:그러면 모든 이미지와 컨테이너가 파괴됩니다.복원할 수 없습니다!
이 솔루션은 Techoverflow.net 에서 제공합니다.
가능한 이유:이 이미지가 현재 실행 중인 컨테이너에서 사용되고 있기 때문일 수 있습니다.이러한 경우 실행 중인 용기를 나열하고 관련 용기를 중지한 다음 이미지를 제거할 수 있습니다.
docker ps
docker stop <containerid>
docker rm <containerid>
docker rmi <imageid>
도커에서 컨테이너를 찾을 수 없는 경우 이를 사용하여 이미 종료된 모든 컨테이너를 나열하고 제거할 수 있습니다.
docker ps -a | grep 60afe4036d97
docker rm <containerid>
참고: 사용 시 종료된 모든 용기를 한 번에 삭제해야 합니다.Volume-Only
용기이것들은 머무릅니다.Exit
상태. 그러나 유용한 데이터가 포함되어 있습니다.
태그가 에 생성된 이 는 오류다발이해이없생컨여때존니입문기전하재히가너테이성에 있을 수 있기 때문입니다.exited
images.state에서 된 모든 . 따라서 해당 이미지에 생성된 모든 컨테이너를 중지하고 삭제했는지 확인해야 합니다.다음 명령은 실행 중이지 않은 모든 컨테이너를 제거하는 데 도움이 됩니다.
docker rm `docker ps -aq --no-trunc --filter "status=exited"`
않는 비중간적인 것을 합니다.<none>
이미지:
docker rmi `docker images --filter 'dangling=true' -q --no-trunc`
참고: 실행 중인 모든 용기를 중지하려면:
docker stop `docker ps -q`
이미지는 현재 실행 중인 컨테이너에서 사용할 수 있으므로 먼저 컨테이너를 중지하고 제거해야 합니다.
docker stop <container-name>
docker rm <container-id>
그런 다음 이미지를 삭제할 수 있습니다.
docker rmi <image-id>
이 이미지가 다른 이미지에 종속되지 않는지 확인해야 합니다(그렇지 않으면 먼저 삭제해야 합니다).
제가 가 없었습니다. 저는 더 이상 살아있는 컨테이너가 없었습니다.docker ps -a
아무것도 반환하지 않았습니다). 하지만 이미지와 이미지 의존성을 삭제할 수 없었습니다.
이러한 특수한 경우를 해결하려면 다음을 사용하여 이미지를 강제로 제거할 수 있습니다.
docker rmi -f <image-id>
배시에서:
for i in `sudo docker images|grep \<none\>|awk '{print $3}'`;do sudo docker rmi $i;done
이름이 "<없음>"인 모든 이미지가 제거됩니다.저는 그 이미지들이 불필요하다는 것을 알았습니다.
다음 명령에서 답을 찾았습니다.
docker images --no-trunc | grep none | awk '{print $3}' | xargs docker rmi
사용 중인 일부 이미지를 삭제했을 때 문제가 발생했습니다. (사용)docker ps -a
).
0 ( 1월) 1..0 (2017년 1월)system prune
명령:
$ docker system prune --help
Usage: docker system prune [OPTIONS]
Remove unused data
Options:
-a, --all Remove all unused images not just dangling ones
-f, --force Do not prompt for confirmation
--help Print usage
Sunny의 답변 외에도:
PowerShell 창에서 Windows 컴퓨터(Windows용 Docker 포함)의 모든 이미지를 삭제하려면 다음 작업을 수행합니다.
docker images -q | %{docker rmi -f $_}
PowerShell 창에서 Windows 컴퓨터(Windows용 Docker 포함)의 모든 컨테이너를 삭제하려면 다음 작업을 수행합니다.
docker ps -a -q | %{docker rm -f $_}
간단히 추가할 수 있습니다.--force
명령이 끝날 때.예:
sudo docker rmi <docker_image_id> --force
보다 지능적으로 만들기 위해 다음과 같이 추가할 수 있습니다.
먼저 실행 중인 모든 컨테이너를 중지합니다.
sudo docker stop $(docker ps | grep <your_container_name> | awk '{print $1}')
이제 컨테이너 제거
sudo docker rm $(docker ps | grep <your_container_name> | awk '{print $1}')
이제 마지막 단계로 도커 이미지 제거
sudo docker rmi $(docker images | grep <your_image_name> | awk '{print $3}') --force
여서기에서.docker ps
$1은 첫 번째 열, 즉 도커 컨테이너 ID입니다.
그리고.docker images
$3은 세 번째 열, 즉 도커 이미지 ID입니다.
에서는 다음과 같습니다.sudo
명령을 실행할 수 있는 권한이 없는 경우에 사용됩니다.오류가 발생하면 제거해 보십시오.sudo
.
먼저, 다음 명령을 사용하여 모든 용기를 제거합니다.
sudo docker ps -a -q | xargs -n 1 -I {} sudo docker rm {}
그런 다음 다음 명령을 사용하여 ID로 이미지를 제거합니다.
sudo docker rmi <image-id>
사용하다
docker image prune -all
또는
docker image prune -a
매달린 이미지를 모두 제거합니다.-a
를 지정하면 컨테이너에서 참조하지 않는 모든 이미지도 제거됩니다.
참고: 자르기가 제거되기 전에 확인 메시지가 표시되지만 제거될 수 있는 항목의 목록은 표시되지 않습니다.게다가.docker image ls
에서는 음의 필터링을 지원하지 않으므로 실제로 제거될 이미지를 예측하기가 어렵습니다.
도커의 가지치기 설명서에 명시된 대로입니다.
먼저 해당 이미지에 생성된 불필요한 모든 용기를 중지/삭제해야 합니다.
확인:오래된 도커 컨테이너를 제거하는 방법.
그런 다음 @marcell 솔루션을 사용합니다.
모든 용기를 제거합니다.
docker ps -q -a | xargs docker rm
모든 도커 이미지 강제 제거
docker rmi -f $(docker images -f dangling=true -q)
태그가 지정되지 않은 모든 영상을 제거하는 명령의 가장 컴팩트한 버전은 다음과 같습니다.
docker rmi $(docker images | grep "^<none>" | awk '{print $"3"}')
일부 도커 이미지를 삭제하려면 다음 명령을 실행해야 합니다.
$ docker rmi <docker_image_id>
따라서 모든 도커 이미지를 삭제하려면 다음 명령을 실행합니다.
$ docker rmi $(docker images -q)
모든 포함)를하면 됩니다.-f
예:
$ docker rmi -f $(docker images -q)
중인 할 수 .meltwater/docker-cleanup
.
그렇게 하면 손으로 치울 필요가 없습니다.
그냥 실행:
docker run -d -v /var/run/docker.sock:/var/run/docker.sock:rw -v /var/lib/docker:/var/lib/docker:rw --restart=unless-stopped meltwater/docker-cleanup:latest
30분마다 실행됩니다(또는 DELETY_를 사용하여 설정한 시간).TIME=vmx 옵션) 및 종료된 용기와 이미지를 정리합니다.
더 자세한 정보: https://github.com/meltwater/docker-cleanup/blob/master/README.md
언급URL : https://stackoverflow.com/questions/21398087/how-can-i-delete-dockers-images
'programing' 카테고리의 다른 글
MariaDB를 시작하고 센토스 기반 도커 이미지를 계속 실행하는 방법. (0) | 2023.08.10 |
---|---|
재할당을 사용하여 할당된 메모리 축소 (0) | 2023.08.10 |
아이폰에서 빈 영역을 터치했을 때 키보드를 숨기는 방법 (0) | 2023.08.10 |
스프링 셸을 사용하여 스프링 부트 웹 애플리케이션에서 콘솔 명령을 빌드하는 방법은 무엇입니까? (0) | 2023.08.10 |
단추를 링크처럼 만드는 방법은 무엇입니까? (0) | 2023.08.10 |