중지 된 컨테이너에서 이미지를 사용 중입니다.


93

이 명령으로 도커 컨테이너를 삭제하려고합니다.

docker rmi <Image-Id>

분명히 Image-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

답변:


121

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

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

  docker rmi -f <image_id> 

1
고마워, 잘 작동했지만 문제가 있습니다. 10GB 이미지를 삭제했지만 삭제 한 후 사용 가능한 디스크 공간이 변경되지 않았습니다.
메흐 다드 Babaki

1
당신은 볼륨 제거 이미지를 첨부하여 각 이미지 사이즈 확인 않았다 않았다
Adiii

1
사실, 나는 도커를 처음 접했습니다. 도구를 사용해 보겠습니다. 그런데 명령 줄을 사용하여 볼륨을 감지하고 제거 할 수 있습니까?
Mehrdad Babaki

1
예 도커 볼륨 ls; 볼륨을 나열하고 제거하려면 docker volume rm v_id
Adiii

40

를 사용하여 중지 된 컨테이너를 삭제 docker rm한 다음에서 사용하는 이미지를 삭제할 수 있습니다 docker rmi.


3
이것은 완전한 답변의 일부입니다. 강제로 제거하거나 중지 된 이미지를 삭제할 수 있습니다.
bmacnaughton

28

잠금을 유발하는 컨테이너를 중지했을 수도 있습니다. 다음을 사용하여 먼저 제거하십시오.

docker rm  $(docker ps -q -a)

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

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

docker image rm <image_id>

21

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

#check container
docker ps -a

#remove container
docker rm containerID

3
분명히 최고의 답변입니다. 중지 된 컨테이너 목록을 얻는 방법을 설명하는 유일한 사람입니다.
Marco

4

docker rmi <image-id>작동하지 않는 경우 다음을 시도하십시오.

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

docker stop $(docker ps -aq)

모든 용기 제거

docker rm $(docker ps -aq)

모든 이미지 제거

docker rmi $(docker images -q)

3

다른 답변 외에도 Mac 용 Docker를 사용하여 동일한 문제가 발생했지만 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 앱에서 사용됩니다. Mac 용 Docker 환경 설정에는 Kubernetes에 대한 섹션이 있습니다. "시스템 컨테이너 표시 (고급)"를 클릭하면에 나타납니다 docker ps.

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


2

Docker 컨테이너는 docker 이미지 위에서 실행되며 컨테이너에 연결되지 않은 경우에만 이미지를 삭제할 수 있습니다.! 따라서 컨테이너를 중지하고 컨테이너를 제거한 다음 이미지 ID를 제거 할 수 있습니다.

docker stop container-id 및 docker rm container-id

그런 다음 이미지 docker rmi image-id를 제거하십시오.

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

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


컨테이너 중지 (docker-compose stop)-> 컨테이너 제거 (docker rm <컨테이너 이름>)-> 관련 이미지 제거 (docker rmi <image_id>) 프로세스에 따른 정답이어야합니다.
kta

1

목표가 디스크 공간을 확보하는 것이라면 아직 언급되지 않은 또 다른 방법은를 사용하는 것 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

명명 된 이미지는 삭제되지 않지만 명명되지 않은 중간 이미지는 제거됩니다. 사용중인 컨테이너의 크기에 따라 상당한 양의 디스크 공간을 절약 할 수 있습니다.


0

에서 변경하고 Dockerfiledocker compose를 사용 docker-compose 하는 경우 --build옵션 을 실행하여 이미지를 다시 빌드 할 수 있습니다 !


당신은 어떠한 변경 한 경우 Dockerfile당신은 자신을 그냥 플래그를 사용하여 이미지를 제거 shoudn't --build과를 docker-compose가 변화와 새로운 이미지 재건 있도록
ans1genie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.