Ccmmutty logo
Commutty IT
1 min read

一覧表示した結果から、ループで順次実行するコマンドを1行で書いてみる

https://cdn.magicode.io/media/notebox/blob_nG8FAfL
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で削除していく、という方法です。
ひとまず、コマンド一発で不要なdocker プロセスをまとめて削除できました。

Discussion

コメントにはログインが必要です。