docker - 윈도우에서 실행 시 "unknown shorthand flag" 오류
docker에서 "<none>" 이름의 이미지를 삭제할 때 "docker image prune -f" 외에도 다음과 같은 명령어가 가능하다고 합니다.
How to remove images after building
; https://stackoverflow.com/questions/6359820/how-to-set-commands-output-as-a-variable-in-a-batch-file
docker rmi $(docker images -f "dangling=true" -q)
그런데 이 명령어를 윈도우 환경에서 실행하면 다음과 같은 오류가 발생합니다.
C:\Windows\System32> docker rmi $(docker images -f "dangling=true" -q)
unknown shorthand flag: 'q' in -q)
See 'docker rmi --help'.
당연합니다. ^^ 저건 Linux 계열의 shell script 구문이기 때문입니다. 유사한 구문으로 윈도우에서 실행하고 싶다면 다음과 같이 (잘 외울 수도 없는 ^^;) FOR 문을 사용해야 합니다.
C:\Windows\System32> FOR /F %i IN ('docker images -f "dangling=true" -q') do docker rmi %i
참고로 저 구문을 batch 파일 내에서 사용한다면 "%i"를 "%%i"로 바꿔야 합니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]