全力で怠けたい

怠けるために全力を尽くしたいブログ。

Docker のコンテナ ID だけを表示する --quiet オプションを知ったメモ。

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

以上。