Docker のコンテナ ID だけを表示する --quiet オプションを知ったメモ。
Docker のコンテナ ID だけを表示する
Docker のコンテナ ID だけを表示する --quiet オプションを知ったのでメモしておく。
Docker のコンテナはコンテナ ID を指定して stop したり restart することが多いけどコンテナ ID を調べようとして docker container ls
コマンドを実行するとコンテナ ID 以外にもいろいろ情報が表示する。
対話的にやってるときはそれでいいけどシェルスクリプトとかはコンテナ ID 以外は必要としないのでちょろっと工夫してコンテナ ID だけ取得しているのだけど docker container ls
コマンドのヘルプを見てたらそのへんの工夫は全然必要ないことが分かったのでメモしておく。
最初に ls するコンテナを起動しておく。
$ docker container run --name my-httpd -dit -p 8080:80 httpd f5e4bb31377d45d6478444480f6b6503e692536151a80bbc3cac606b7f63f2e7
普通に docker container ls
コマンドを実行するとコンテナ ID 以外にもいろいろ情報が表示する。
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f5e4bb31377d httpd "httpd-foreground" 3 seconds ago Up 3 seconds 0.0.0.0:8080->80/tcp my-httpd
自分はだいたいはコンテナ ID だけ取得するのでコンテナ名で grep して awk で1つめのフィールドだけ表示する、というかしてた。
$ docker container ls | grep my-httpd | awk '{print $1}' f5e4bb31377d
docker container ls
コマンドの --filter
オプションを指定すると grep する必要がなくなって --quiet
オプションを指定すると awk する必要がなくなり、タイプ数も少し少なくなる。
$ docker container ls --filter "name=my-httpd" --quiet f5e4bb31377d
docker container ls
コマンドの --filter
オプションと --quiet
オプションはショートオプションが用意されているのでそれぞれショートオプションの -f
と -q
を指定するとさらにタイプ数が少なくなる。らく。
$ docker container ls -q -f "name=my-httpd" f5e4bb31377d
以上。