도커 이미지 삭제 방법은 크게 이미지 ID 또는 이미지 이름을 기준으로 삭제하는 두 가지 방법이 있습니다. 다음 명령어를 사용하여 불필요한 이미지를 삭제할 수 있습니다.
먼저, 삭제할 이미지가 있는지 확인하세요.
docker images
출력 예시:
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
---|---|---|---|---|
my-app | latest | abc1234def | 2 days ago | 150MB |
none | none | xyz5678ghi | 3 weeks ago | 300MB |
docker rmi <IMAGE_ID>
예시:
docker rmi abc1234def
docker rmi <IMAGE_NAME>:<TAG>
예시:
docker rmi my-app:latest
태그가 없는 Dangling 이미지는 자동으로 생성되지만, 불필요한 경우가 많습니다. 이를 한 번에 삭제하려면 다음 명령어를 사용합니다.
docker image prune
모든 이미지를 강제로 삭제하고 싶다면:
docker image prune -a
모든 이미지를 한 번에 삭제하려면:
docker rmi $(docker images -q)
주의: 이 명령어는 로컬의 모든 도커 이미지를 삭제합니다.
docker stop <CONTAINER_ID>
docker rm <CONTAINER_ID>
그 후 이미지 삭제:
docker rmi <IMAGE_ID>
이미지가 실행 중인 컨테이너가 없더라도, 정지된 컨테이너가 해당 이미지를 참조하고 있기 때문에 삭제가 안 되는 것입니다. 도커에서는 이미지를 참조하는 컨테이너가 있으면 해당 이미지를 삭제할 수 없습니다.
이미지를 삭제하기 전에, 해당 이미지와 연결된 정지된 컨테이너를 삭제해야 합니다.
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
컨테이너를 삭제하지 않고도 이미지를 강제로 삭제하려면 --force
옵션을 사용합니다.
docker rmi --force d71d807d7f29
⚠️ 주의: 강제 삭제 시 해당 이미지와 연결된 컨테이너도 함께 삭제되므로, 컨테이너의 데이터가 사라질 수 있습니다.
불필요한 모든 정지된 컨테이너를 한 번에 삭제하고 싶다면:
1️⃣ 정지된 컨테이너 모두 삭제:
docker container prune
2️⃣ 이미지 삭제:
docker rmi d71d807d7f29