CodeGym /コース /Docker SELF /コンテナの状態チェック

コンテナの状態チェック

Docker SELF
レベル 11 , レッスン 2
使用可能

3.1 docker ps コマンドの基本

docker ps コマンドはDockerの中でもめっちゃ使えるコマンドの1つだね。これを使うと実行中のコンテナ一覧とその情報が確認できるよ。このレクチャーでは、docker ps を使ってコンテナ状態の確認方法や、より詳細な情報を取得するためのオプションについて詳しく説明するね。

デフォルトでは、docker ps コマンドは現在実行中のコンテナのみ一覧表示するよ。

構文

ターミナル

docker ps [OPTIONS]

ここで:

  • OPTIONS: 出力をフィルタリングしたりフォーマットしたりするための追加オプションだよ。

基本的な使い方の例

ターミナル


docker ps 

この基本的な docker ps コマンドの呼び出しは、すべての実行中のコンテナをリストにしてくれるよ。出力には次のフィールドが含まれるんだ:

  • CONTAINER ID: コンテナのユニークID。
  • IMAGE: コンテナが作成されたイメージ。
  • COMMAND: コンテナ内で実行されているコマンド。
  • CREATED: コンテナが作成されてからの経過時間。
  • STATUS: コンテナの現在の状態(例えば、Up 5 minutesとか)。
  • PORTS: 転送されているポート。
  • NAMES: コンテナの名前。

すべてのコンテナのリスト

停止中のコンテナも含めてすべて表示したいなら、オプション -a を使おう:

ターミナル


docker ps -a 

このコマンドで、これまでに一度でも起動されたすべてのコンテナを一覧表示して、現在の状態(稼働中、停止中など)も教えてくれるよ。

3.2 出力のフィルタリング

Dockerはdocker psコマンドの出力をフィルタリングして、指定した条件に一致するコンテナのみを表示する機能を提供してるよ。

1. ステータスによるフィルタリング

例えば、停止したコンテナだけを表示するにはこうする:

Terminal


docker ps -f "status=exited" 

2. 名前によるフィルタリング

特定の名前やその一部を持つコンテナを表示するにはこうする:

Terminal


docker ps -f "name=my_container"

3. イメージによるフィルタリング

具体的なイメージから作成されたコンテナを表示するにはこうする:

Terminal

docker ps -f "ancestor=nginx"

3.3 出力フォーマット設定

docker psコマンドの出力を、読みやすくするためや必要なフィールドだけを含めるためにカスタマイズすることができるよ。そのためには、--formatパラメータを使うんだ。

フォーマットの例

ターミナル


docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

この例では、コンテナID、その名前、そしてステータスが含まれたテーブルを出力するよ。

利用可能なテーブルのカラム

  • {{.ID}}: コンテナID。
  • {{.Image}}: コンテナのイメージ。
  • {{.Command}}: コンテナ内で実行されているコマンド。
  • {{.CreatedAt}}: コンテナが作成された時間。
  • {{.RunningFor}}: コンテナが稼働している期間。
  • {{.Status}}: コンテナの現在の状態。
  • {{.Ports}}: リダイレクトされているポート。
  • {{.Names}}: コンテナの名前。

使用例

例1: コンテナIDのみを表示

この例では、稼働中のコンテナIDだけを表示するよ。スクリプトで使いたいときに便利だね。

ターミナル


docker ps -q

例2: 過去24時間以内に稼働していたコンテナを表示

ターミナル


docker ps --filter "since=24h" 

例3: 特定のステータスを持つコンテナを表示し、出力をフォーマット

この例では、稼働中のすべてのコンテナについて、名前、ステータス、およびリダイレクトポートを含むテーブルを出力するよ。

ターミナル


docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" 

3.4 実際のシナリオ

1. 実行中のコンテナの監視

複数のコンテナを実行している場合、docker psコマンドを使えば、現在の状態をすばやく確認して、すべてが正しく動作しているかどうかを確認できるよ。

Terminal


docker ps 

2. 停止したコンテナの検索と削除

コンテナの実行が終了すると、それらは削除されるまでシステム内に残るよ。docker ps -aを使って停止中のコンテナを検索して、その後削除することができる。

Terminal

docker ps -a -f "status=exited" 
docker rm $(docker ps -a -f "status=exited" -q)
    

3. タスクの自動化

docker psコマンドをスクリプト内で使用することで、コンテナ管理のさまざまなタスクを自動化できるよ。例えば、コンテナの状態レポートを作成したり、停止したコンテナを自動で再起動したりすることも可能。

Terminal

if [ $(docker ps -q -f "name=my_container") ]; then
  echo "コンテナが実行中"
else
  docker start my_container
fi
    

重要! このコードはLinuxターミナルで書かれてるよ。たぶん、まずLinuxを勉強する必要があるかもね。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION