Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 문자열 불변성
- FunctionalInterface
- sql-mappler
- 쓰레드 라이브러리
- django-crontab
- hiberbate
- custom annotation
- 도커
- 문자열 리터럴
- @Header
- none이미지
- java.util.function
- spring-data-jpa
- AOP
- python-socketio
- Thread Multiplexing
- 함수형 인터페이스
- Spring
- rainbow table
- task_struct
- 롬복주의점
- 운영체제
- SystemCall
- 프로세스
- Thread Library
- ReflectUtils
- strict stubbing
- functional interface
- OS
- Process
Archives
- Today
- Total
JH's Develog
[Docker] none 이미지 삭제하기 본문
도커 이미지를 빌드하다보면 위와 같은 <none>이미지들이 쌓이곤 하는데 일일히 ID입력해서 지우기는 너무 번거롭습니다. <none> 이미지들을 일괄적으로 한번에 삭제하는 방법을 알아보겠습니다.
docker rmi $(docker images -f "dangling=true" -q)
dangling 필터는 TAG가 없는(none)인 이미지만 필터링 해주므로 -f 옵션으로 dangling=true인 이미지들만 검색한 후
-q 옵션을 통해 이미지의 ID만 가져와서 rmi를 통해 삭제해주는 명령어 입니다.
Error response from daemon: conflict: unable to delete <IMAGE ID> (must be forced)
- image is being used by stopped container <CONTAINER ID>
어떤 이미지들은 위와 같은 에러 메시지가 뜨면서 삭제할 수 없는데 이는 Stopped된 컨테이너에서 해당 이미지를 사용하고 있기 때문입니다.
이때에는 두가지 방법이 있는데 하나는 -f 옵션을 추가하여 이미지를 강제로 삭제하는 방법입니다.
docker rmi -f $(docker images -f "dangling=true" -q)
이렇게 되면 이미지는 사용되고 있는 컨테이너가 있더라도 강제로 삭제됩니다.
다른 방법은 Exited된 컨테이너를 먼저 삭제해주고 나서 none 이미지 삭제 명령어를 실행하는 방법입니다.
docker ps -a 명령어를 통해서 컨테이너들을 확인하고 하나하나 지워도 되지만
docker rm $(docker ps --filter status=exited -q)
위 명령어로 Exited 상태인 컨테이너를 모두 삭제하고 none 이미지 삭제 명령어를 삭제해도 됩니다.
다만 이 방법을 사용하면 none 아닌 이미지를 사용하고 있는 컨테이너여도 Exited상태이면 모두 삭제 되므로 주의해서 사용해야합니다.
'Docker' 카테고리의 다른 글
[Docker] 리눅스 부팅 시 도커 컨테이너 자동 실행 시키기 (0) | 2022.01.07 |
---|
Comments