Linuxコマンドの小技の紹介です。
今回はDockerコマンドを使っていますが、Linux全般の操作で活用できると思います。
Dockerを勉強でいじっていたのですが、不要になったDocker Imageが増えてしまい、削除がめんどくさいなあとなりました。
なんとか楽にできる方法を模索してみたので、まとめておきます。
従来の自分のやりかた
まず、以下のコマンドで一覧を取得してー、、
docker ps -a
1行ずつコンテナIDを指定して、以下のコマンドを実行していく感じ、、
docker rm [コンテナID]
消したいイメージ数分実行しないといけないので、とても大変です。
なんとか捻り出したやりかた
シェルでループにしてー、って書けばできそうだけど、それもめんどくさい。
なんとかコマンド一発でやりたいと思い、以下のコマンドを書きました。
docker ps -a |awk '{print $1}'| while read LINE; do docker rm $LINE; done
docker ps -a
で一覧を取得します。
その一覧に対して、awk
を使って、コンテナIDのみ取得します。
そうするとコンテナIDの一覧となるので、while
で順次コンテナIDを指定して、docker rm
で削除していく、という方法です。
削除対象の条件を追加したいなどの要望が出てきたら、grep
なんかを使えば実現できそうな気がしてきています。
ひとまず、コマンド一発で不要なdocker imageをまとめて削除できました。