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. ステータスによるフィルタリング
例えば、停止したコンテナだけを表示するにはこうする:
docker ps -f "status=exited"
2. 名前によるフィルタリング
特定の名前やその一部を持つコンテナを表示するにはこうする:
docker ps -f "name=my_container"
3. イメージによるフィルタリング
具体的なイメージから作成されたコンテナを表示するにはこうする:
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コマンドを使えば、現在の状態をすばやく確認して、すべてが正しく動作しているかどうかを確認できるよ。
docker ps
2. 停止したコンテナの検索と削除
コンテナの実行が終了すると、それらは削除されるまでシステム内に残るよ。docker ps -aを使って停止中のコンテナを検索して、その後削除することができる。
docker ps -a -f "status=exited"
docker rm $(docker ps -a -f "status=exited" -q)
3. タスクの自動化
docker psコマンドをスクリプト内で使用することで、コンテナ管理のさまざまなタスクを自動化できるよ。例えば、コンテナの状態レポートを作成したり、停止したコンテナを自動で再起動したりすることも可能。
if [ $(docker ps -q -f "name=my_container") ]; then
echo "コンテナが実行中"
else
docker start my_container
fi
重要! このコードはLinuxターミナルで書かれてるよ。たぶん、まずLinuxを勉強する必要があるかもね。
GO TO FULL VERSION