로컬에서 도커 이미지 삭제

Seong Hyeon Kim·2025년 1월 11일
0

개인공부

목록 보기
25/25

도커 이미지 삭제 방법은 크게 이미지 ID 또는 이미지 이름을 기준으로 삭제하는 두 가지 방법이 있습니다. 다음 명령어를 사용하여 불필요한 이미지를 삭제할 수 있습니다.


🔍 1. 도커 이미지 목록 확인

먼저, 삭제할 이미지가 있는지 확인하세요.

docker images

출력 예시:

REPOSITORYTAGIMAGE IDCREATEDSIZE
my-applatestabc1234def2 days ago150MB
nonenonexyz5678ghi3 weeks ago300MB

🗑️ 2. 특정 도커 이미지 삭제

이미지 ID로 삭제:

docker rmi <IMAGE_ID>

예시:

docker rmi abc1234def

이미지 이름으로 삭제:

docker rmi <IMAGE_NAME>:<TAG>

예시:

docker rmi my-app:latest

🔄 3. Dangling 이미지(태그가 없는 이미지) 삭제

태그가 없는 Dangling 이미지는 자동으로 생성되지만, 불필요한 경우가 많습니다. 이를 한 번에 삭제하려면 다음 명령어를 사용합니다.

docker image prune

모든 이미지를 강제로 삭제하고 싶다면:

docker image prune -a

🚀 4. 모든 도커 이미지 삭제

모든 이미지를 한 번에 삭제하려면:

docker rmi $(docker images -q)

주의: 이 명령어는 로컬의 모든 도커 이미지를 삭제합니다.


5. 이미지 삭제 시 오류 해결 방법

  • 이미지를 사용하는 컨테이너가 있어서 삭제 불가
    이미지가 실행 중인 컨테이너와 연결되어 있다면 먼저 컨테이너를 중지하고 삭제해야 합니다.
docker stop <CONTAINER_ID>
docker rm <CONTAINER_ID>

그 후 이미지 삭제:

docker rmi <IMAGE_ID>


🔎 문제 : 이미지가 컨테이너에 연결되어 있으면 삭제가 불가능하다

이미지가 실행 중인 컨테이너가 없더라도, 정지된 컨테이너가 해당 이미지를 참조하고 있기 때문에 삭제가 안 되는 것입니다. 도커에서는 이미지를 참조하는 컨테이너가 있으면 해당 이미지를 삭제할 수 없습니다.


🛠️ 해결 방법 1: 연결된 정지 컨테이너 삭제 후 이미지 삭제

이미지를 삭제하기 전에, 해당 이미지와 연결된 정지된 컨테이너를 삭제해야 합니다.

1️⃣ 정지된 컨테이너 목록 확인:

docker ps -a

출력 예시:

CONTAINER ID   IMAGE          STATUS                      NAMES
c02d7b7e1b9b   d71d807d7f29   Exited (0) 2 hours ago      my-container

2️⃣ 정지된 컨테이너 삭제:

docker rm c02d7b7e1b9b

3️⃣ 이미지 삭제:

docker rmi d71d807d7f29

🛠️ (권장x) 해결 방법 2: 강제로 이미지 삭제

컨테이너를 삭제하지 않고도 이미지를 강제로 삭제하려면 --force 옵션을 사용합니다.

docker rmi --force d71d807d7f29

⚠️ 주의: 강제 삭제 시 해당 이미지와 연결된 컨테이너도 함께 삭제되므로, 컨테이너의 데이터가 사라질 수 있습니다.


🧹 해결 방법 3: 모든 정지된 컨테이너 삭제 후 이미지 삭제

불필요한 모든 정지된 컨테이너를 한 번에 삭제하고 싶다면:

1️⃣ 정지된 컨테이너 모두 삭제:

docker container prune

2️⃣ 이미지 삭제:

docker rmi d71d807d7f29
profile
삽질도 100번 하면 요령이 생긴다. 부족한 건 경험으로 채우는 개발자

0개의 댓글