테키테크 TEKITECH
[Docker] 도커 이미지 삭제와 오류 / 컨테이너 확인하고 컨테이너 삭제하기 본문
도커를 다루기 시작하면서 가장 많이 보게 된 오류 메시지 중 하나는 이거였다.
$ docker rmi tekidocker:0.1
Error response from daemon: conflict: unable to remove repository reference "tekidocker:0.1" (must force) - container 05f6b2f871d6 is using its referenced image 3f865154a216
도커 이미지 tekidocker:0.1을 지우려고 시도했고, 이미 그 이미지로 만든 도커 컨테이너가 있기 때문에 지울 수 없다는 뜻이다.
*tekidocker:0.1은 임의로 지은 이름이고, 지우려는 대상 이미지의 이름이나 이미지 ID를 사용하면 된다.
이 이미지를 지우려면 두 가지 방법이 있다.
도커 컨테이너 기초 실습을 하면서 이 방법에 대해서 알아보긴 했지만 좀 더 자세하게 풀어보고 싶었다.
1. 강제로 지우기: -f
첫 번째 방법은 도커가 제안한 "must force", 즉 강제로 지우는 방법이다.
강제 옵션만 주면 되기 때문에 매우 간단하다.
docker rmi -f tekidocker:0.1
2. 관련된 컨테이너를 모두 삭제하고 이미지 삭제하기
두 번째 방법은 문제가 되는 도커 컨테이너를 모두 삭제해서 오류를 해결하는 방법이다.
[1] 도커 컨테이너 확인
먼저 컨테이너 목록을 확인해보자.
docker container ls -a
도커에 있는 모든 컨테이너를 확인해보면 목록이 엄청 많이 나온다.
그중에서 지우려는 이미지로 만든 도커만 찾아내 보자.
*도커 이미지의 이름과 ID 둘 다 확인해보는 걸 추천한다.
혹시라도 놓친 컨테이너가 없어야 도커 이미지 삭제를 시도했을 때 같은 오류가 나서 두 번 확인하는 일을 방지할 수 있다.
# 하나씩 확인하기
docker container ls -a | grep [도커 이미지 이름 또는 ID]
# grep의 or 조건을 활용해 한 번에 확인하기
docker container ls -a | grep -e [도커 이미지 이름] -e [도커 이미지 ID]
[2] 도커 컨테이너 삭제
이렇게 찾은 도커 컨테이너를 모두 지워주자.
docker rm [컨테이너 이름 또는 ID]
개수가 많다면 이렇게도 할 수 있다.
*도커 컨테이너의 이름 또는 ID를 띄어쓰기로 구분하여 나열한다
docker rm [컨테이너 1] [컨테이너 2] [...]
[3] 도커 이미지 삭제
도커 컨테이너를 모두 지웠으면 이제 도커 이미지를 삭제할 수 있다.
docker rmi tekidocker:0.1
반응형
'Tech > Ops' 카테고리의 다른 글
Comments