[docker] 종속 자식 이미지가있는 도커 이미지를 삭제할 수 없습니다

노력하고 있습니다

docker rmi c565603bc87f

오류:

데몬의 오류 응답 : 충돌 : c565603bc87f를 삭제할 수 없습니다 (강제 할 수 없음)-이미지에 종속 자식 이미지가 있습니다

따라서 -f 플래그를 사용해도 이미지를 삭제할 수 없습니다. 이미지를 삭제하고 모든 하위 항목을 삭제하는 방법은 무엇입니까?

리눅스와 도커 버전 :

uname -a Linux goracio-pc 4.4.0-24-generic # 43-Ubuntu SMP 6 월 8 일 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux

docker version 클라이언트 : 버전 : 1.11.2 API 버전 : 1.23 Go 버전 : go1.5.4 Git commit : b9f10c9 Built : Wed Jun 1 22:00:43 2016 OS / Arch : linux / amd64

서버 : 버전 : 1.11.2 API 버전 : 1.23 Go 버전 : go1.5.4 Git 커밋 : b9f10c9 빌드 : Wed Jun 1 22:00:43 2016 OS / 아치 : linux / amd64



답변

이미지를 제거하기 전에 불필요한 이미지를 제거해야합니다.

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

그 후 다음을 실행하십시오.

docker rmi c565603bc87f


답변

어떤 경우에는 (내 경우와 같이) 존재하지 않는 여러 태그가있는 이미지 ID를 지정하여 이미지 를 삭제하려고 할 수 있습니다 . 일부는 다른 이미지에서 사용될 수 있습니다. 이 경우 이미지를 제거하지 않을 수 있습니다 .

여기에 설명 된대로 중복 태그가있는 경우 제거하려는 중복 태그 대신 docker rmi <image_id>사용 docker rmi <repo:tag>하십시오.


답변

이전의 모든 대답은 정확하지만 여기에 모든 이미지를 강제로 삭제 하는 솔루션이 있습니다 (이 명령을 사용하면 모든 이미지가 삭제됩니다 )

docker rmi $(docker images -q) -f

여기에 이미지 설명을 입력하십시오


답변

해당 이미지 이후에 생성 된 모든 이미지의 이미지 ID 및 부모 ID를 다음과 같이 찾으십시오.

docker inspect --format='{{.Id}} {{.Parent}}' $(docker images --filter since=<image_id> -q)

그런 다음 명령을 호출하십시오.

docker rmi {sub_image_id}

“sub_image_id”는 종속 이미지의 ID입니다.


답변

나에게 일한 것은 이미지 ID 대신 REPOSITORY : TAG 조합을 사용하는 것이 었습니다.

docker rmi <IMAGE ID>이 이미지와 관련된 컨테이너가없는 명령 으로 도커 이미지를 삭제하려고 할 때 메시지가 표시되었습니다.

$ docker rmi 3f66bec2c6bf
Error response from daemon: conflict: unable to delete 3f66bec2c6bf (cannot be forced) - image has dependent child images

명령을 사용하면 성공적으로 삭제할 수 있습니다 docker rmi RPOSITORY:TAG

$ docker rmi ubuntu:18.04v1
Untagged: ubuntu:18.04v1


답변

이 명령은 모든 이미지를 제거합니다 (주의와 함께 사용)

–force를 사용해 보셨습니까?

sudo docker rmi $(sudo docker images -aq) --force

이 위의 코드는 심지어 같은 문제가있는 매력처럼 실행됩니다.


답변

여기에 대한 대답은 모든 자손 자녀를 찾는 것입니다.

도커 종속 자식 이미지 목록을 어떻게 얻을 수 있습니까?

그런 다음이를 사용하여 자식 이미지를 순서대로 제거하십시오.