DevBoi

[Docker] awk로 Image 다중 삭제 본문

Infra/[K8S & Docker]

[Docker] awk로 Image 다중 삭제

HiSmith 2023. 10. 15. 11:20
반응형

도커 이미지 관련 다중 삭제를 할때 사용하는 커맨드가 있는데

다른사람들은 어떻게 삭제하나 궁금했다.

 

간단한 로깅 스크립트를 awk 관련되서 사용했었는데 해당 방식으로 삭제하려는 사람들도 있었다.

무튼 나는 아래와 같은 커맨드로 다중 삭제한다.

docker rmi --force `docker images | awk '$1 ~ /boiler-core/ {print $3}'`

docekr rmi --force까지는 뭐 당연한데 그 뒤로 어떤건지 남겨놓겠다

 

awk은 grep과 상상히 유사하다

하지만 다른 점이 있는데

 

awk에서는 action, pattern이 있다.

# pattern 생략.
$ awk '{ print }' ./file.txt      # file.txt의 모든 레코드 출력.

# action 생략.
$ awk '/p/' ./file.txt            # file.txt에서 p를 포함하는 레코드 출력.

 

그러면 위와같은 식에서는 

docker image에서 출력문중 boiler-core를 가진 라인들의 3번째 라인들이 출력이 되고

전체 출력 리스트중에, 1번째 변수로 받은 image id가 출력이 되게 된다.

 

만약에 

 docker images | awk '$2 ~/boiler-core/ {print $3} {print $2}'

 

해당과 같은 경우, 2번째 변수인 $2가 출력이 되고, 버전 태그가 명시된다.

 

 

도커 이미지를 여러개 삭제할때 awk를 사용하면 편하고

awk는 명령문을 좀 더 보기 쉽게 해주는 이점이 있다.

반응형