Docker

도커 이미지 조회 / 삭제하기

KimMinJun 2025. 7. 31. 04:39

2025.07.30 - [Docker] - 도커 이미지 다운로드 하기

 

도커 이미지 다운로드 하기

컨테이너를 실행하려면 도커 이미지가 필요하다.이미지를 다운받기 위해서는 다음과 같은 명령어를 입력하면 된다.docker pull 그리고 다운받은 이미지 리스트를 보고 싶으면 다음과 같은 명령어

jun-coding.tistory.com

 

지난 포스팅에서 이미지를 다운로드 하고, 조회를 하는 기능을 알아봤다.

이미지를 조회했을 때 어떤 정보들이 나오는지 아주 조금 더 자세히 알아보자.

 

이미지 조회하기

아래 명령어로 다운로드 받은 이미지를 조회할 수 있었다.

docker image ls

  설명
REPOSITORY 이미지 저장소 명을 나타낸다.
TAG 이미지의 버전을 나타낸다.
IMAGE ID 각 이미지에 부여된 고유한 ID를 나타낸다.
CREATED 이미지를 다운로드 한 날짜가 아닌 이미지가 생성된 날짜이다.
SIZE 이미지의 용량을 나타낸다.

 

이미지 삭제하기

기존에 있던 nginx 이미지를 삭제해보자.

IMAGE ID를 rm 명령어와 함께 입력하여 삭제할 수 있다.

ID의 일부만 입력해줘도, 입력한 ID로 시작하는 이미지가 삭제된다.

docker image rm <IMAGE ID>

 

그런데, 다음과 같은 에러가 뜨면서 삭제되지 않았다.

이전에 nginx 이미지가 실행중인 컨테이너를 stop 시켜놨었는데,

stop 중인 컨테이너에 있는 이미지이기 때문에 삭제할 수 없다는 에러가 뜬다.

왜 컨테이너가 stop 상태임에도 삭제할 수 없을까?

 

도커 이미지는 '컨테이너를 만들기 위한 설계도나 템플릿 같은 존재'라고 했었다.

컨테이너의 실행/정지 상태와 상관없이 컨테이너가 존재한다면 그 이미지를 참조중이다.

따라서 이미지가 사라지면 컨테이너 파일시스템이나 구조에 문제가 생기게 된다.

그래서 먼저 컨테이너를 삭제한 후, 이미지를 지워야 한다.

 

위 터미널 캡쳐본 마지막에 컨테이너 id가 보일 것이다.

다음과 같은 명령어로 컨테이너를 먼저 지워주자.

docker rm <CONTAINTER ID>

 

그리고 나서 다시 이미지를 삭제하고,

이미지 목록을 다시 보면 잘 삭제가 된 것을 볼 수 있다.

만약 중단된 컨테이너가 사용하는 이미지를 이런 과정 없이 삭제하고 싶다면,

다음 명령어로 강제로 삭제해주면 된다.

여기서 중요한 것은 이 명령어는 '중단된 컨테이너'가 사용하는 이미지만 삭제 가능하다는 것이다.

docker image rm -f <IMAGE ID>

 

만약 컨테이너가 사용하고 있지 않은 이미지들을 모두 삭제하고 싶다면 다음 명령어를 입력하면 된다.

docker image rm -f $(docker images -q)

 

여기서 `docker images -q`는 로컬에 있는 모든 이미지의 ID를 출력한다.

그리고 $()로 감싸주게 되면, 이것들을 앞에 있는 명령어의 인자로 넘겨주게 된다.

따라서 모든 도커 이미지의 ID를 불러와서,

모든 ID에 삭제 명령어를 내린다고 생각하면 된다.