codememo

"이미지가 중지된 컨테이너에서 사용되고 있습니다" 오류

tipmemo 2023. 8. 11. 21:51
반응형

"이미지가 중지된 컨테이너에서 사용되고 있습니다" 오류

다음 명령으로 도커 이미지를 삭제하려고 합니다.

docker rmi <Image-Id>

분명히, 저는 이미지-Id를 제가 사용하는 ID로 대체했습니다.

docker images

하지만 아래 오류가 있습니다.

Error response from daemon: conflict: unable to delete <Image-ID> (must be forced) - image is being used by stopped container xxxxxxxxxxx

사용할 수도 있습니다.--force , -f이미지 강제 제거

-f 플래그를 사용하고 이미지의 짧거나 긴 ID를 지정하면 이 명령은 지정된 ID와 일치하는 모든 이미지의 태그를 해제하고 제거합니다.

  docker rmi -f <image_id> 

참고: 이 명령은 컨테이너에서 사용 중인 이미지를 제거합니다.

다음을 사용하여 중지된 컨테이너를 삭제해야 합니다.docker rm그런 다음 사용하는 이미지를 삭제할 수 있습니다.docker rmi.

또한 잠금의 원인이 되는 컨테이너를 중지한 경우도 있습니다.먼저 다음을 사용하여 이러한 항목을 제거합니다.

docker rm  $(docker ps -q -a)

여기에서는 도커 프로세스를 ID로만 나열한 다음 제거합니다. 그러나 도커는 중지된 컨테이너만 제거합니다.

다음으로 돌아가서 다음을 사용하여 이미지를 제거합니다.

docker image rm <image_id>

먼저 용기를 제거해야 합니다.
강제는 마지막으로 취할 수 있는 방법이 아닙니다.

#check container
docker ps -a

#remove container
docker rm containerID

디스크 공간을 회수하는 것이 목표인 경우, 아직 언급되지 않은 다른 접근 방식을 사용하는 것입니다.docker system prune주의해야 할 경고가 인쇄됩니다.

WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all dangling build cache

이렇게 하면 명명된 이미지가 삭제되지 않고 명명되지 않은 중간 이미지가 삭제됩니다.사용 중인 컨테이너의 크기에 따라 디스크 공간을 상당히 절약할 수 있습니다.

경우에.docker rmi <image-id>작동하지 않았습니다. 사용해 보십시오.

실행 중인 모든 컨테이너 중지

docker stop $(docker ps -aq)

모든 용기 제거

docker rm $(docker ps -aq)

모든 이미지 제거

docker rmi $(docker images -q)

다른 답변 외에도 Mac용 도커를 사용하여 동일한 문제가 발생했지만,docker ps -a실행 중인 컨테이너를 표시하지 않았습니다.입니다.docker images표시:

docker/desktop-storage-provisioner   v1.0                605a0f683b7b        2 months ago        33.1MB
k8s.gcr.io/kube-controller-manager   v1.15.5             1399a72fa1a9        6 months ago        159MB
k8s.gcr.io/kube-proxy                v1.15.5             cbd7f21fec99        6 months ago        82.4MB
k8s.gcr.io/kube-apiserver            v1.15.5             e534b1952a0d        6 months ago        207MB
k8s.gcr.io/kube-scheduler            v1.15.5             fab2dded59dd        6 months ago        81.1MB
docker/kube-compose-controller       v0.4.23             a8c3d87a58e7        11 months ago       35.3MB
docker/kube-compose-api-server       v0.4.23             f3591b2cb223        11 months ago       49.9MB
k8s.gcr.io/coredns                   1.3.1               eb516548c180        16 months ago       40.3MB
k8s.gcr.io/etcd                      3.3.10              2c4adeb21b4f        17 months ago       258MB
k8s.gcr.io/pause                     3.1                 da86e6ba6ca1        2 years ago         742kB

Kubernetes를 사용하도록 설정한 경우 이러한 이미지는 모두 Docker 앱에서 사용됩니다.Docker for Mac 환경설정에는 Kubernetes 섹션이 있습니다."시스템 컨테이너 표시(고급)"를 누르면 다음과 같이 나타납니다.docker ps.

이러한 이미지를 삭제하려면 Docker for Mac 앱을 통해 Kubernetes를 비활성화한 다음 다시 시도해야 합니다.

도커 컨테이너는 도커 이미지 위에서 실행됩니다. 이미지가 컨테이너에 연결되어 있지 않은 경우에만 이미지를 삭제할 수 있습니다.!따라서 컨테이너를 중지하고 컨테이너를 제거한 후 이미지 ID를 제거할 수 있습니다.

도커 중지 컨테이너-id 및 도커럼 컨테이너-id

그런 다음 이미지 도커 rmi image-id를 제거해 보십시오.

아래 링크에 추가 정보가 제공됩니다.건배!

https://docs.docker.com/config/pruning/

에서 Dockerfile그리고 당신이 도커 합성을 사용하고 있다면, 당신은 단지 실행으로 당신의 이미지를 다시 만들 수 있습니다.docker-compose--build옵션!

--name을 전달하여 도커 이미지를 작성한 경우 다음을 실행하여 컨테이너를 제거할 수 있습니다.

이름별 도커 컨테이너 실행 예제

/usr/bin/docker run --restart=always --name=dynamodb_docker -p=8000:8000 -v amazon/dynamodb-local

docker stop /dynamodb_docker
docker rm /dynamodb_docker

따라서 도커 컨테이너를 제거하는 올바른 형식은 다음과 같습니다.

docker stop /<CONTAINER NAME>
docker rm /<CONTAINER NAME>

언급URL : https://stackoverflow.com/questions/51188657/image-is-being-used-by-stopped-container-error

반응형