docker ps¶
オプション¶
名前, 省略形 |
デフォルト |
説明 |
---|---|---|
|
全てのコンテナを表示(デフォルトは実行中のコンテナだけ表示) |
|
|
指定した状態に基づき、出力をフィルタ |
|
|
Go テンプレートを使ってコンテナの出力を成形 |
|
|
|
直近に作成したコンテナを n 個表示(全ての状態を含む) |
|
最後に作成したコンテナを表示(全ての状態を含む) |
|
|
表示を |
|
|
コンテナ ID のみ表示 |
|
|
合計ファイル容量を表示 |
使用例¶
出力を省略しない¶
docker ps --no-trunc
を実行すると、リンクされた2つのコンテナを表示します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c01db0b339c ubuntu:12.04 bash 17 seconds ago Up 16 seconds 3300-3310/tcp webapp
d7886598dbe2 crosbymichael/redis:latest /redis-server --dir 33 minutes ago Up 33 minutes 6379/tcp redis,webapp/db
実行中・停止中、両方のコンテナを表示¶
デフォルトの docker ps
は、実行中のコンテナだけ表示します。全てのコンテナを表示するには -a
(または --all
) フラグを使います。
$ docker ps -a
docker ps
は、可能であれば公開ポートのグループを範囲で表示します。例えば、コンテナが 100、101、102
を公開している場合、 PORT
列に 100-102/tcp
と表示します。
コンテナによるディスク使用量を表示¶
docker ps -s
コマンドは、各コンテナに対し、2つの異なるディスク上の容量を表示します。
$ docker ps -s
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE SIZE
e90b8831a4b8 nginx "/bin/bash -c 'mkdir " 11 weeks ago Up 4 hours my_nginx 35.58 kB (virtual 109.2 MB)
00c6131c5e30 telegraf:1.5 "/entrypoint.sh" 11 weeks ago Up 11 weeks my_telegraf 0 B (virtual 209.5 MB)
「size」情報は、(ディスク上の)データ容量を表示します。これは、各コンテナの「書き込み可能な」レイヤが使用している容量です。
「virtual size」は、コンテナと書き込み可能なレイヤが使用している、読み込み専用の「イメージ」データの合計ディスク使用量です。
詳しい情報は、 ディスク上のコンテナ容量 をご覧ください。
フィルタリング¶
フィルタリング・フラグ( -f
と --filter
)の形式は key=value
の組です。複数のフィルタを指定するには、複数のフラグを使います(例: --filter "foo=bar" --filter "bif=baz"
)。
現在、以下のフィルタをサポートします。
フィルタ |
説明 |
---|---|
|
コンテナの ID |
|
コンテナの名前 |
|
キーまたはキーバリューの組み合わせで表す任意の文字。 |
|
コンテナの終了コードを表す整数値。実用的なのは |
|
|
|
指定したイメージを |
|
指定したコンテナ ID かコンテナ名で、コンテナが作成前か作成後でフィルタ |
|
実行中のコンテナがマウントしているボリューム、または、バインドマウントでフィルタ |
|
実行中のコンテナが接続しているネットワークでフィルタ |
|
コンテナが |
|
ヘルスチェック状態に基づきコンテナをフィルタ。 |
|
Windows デーモンのみ。 |
|
サービスに対する "task" かどうかでコンテナをフィルタ。ブール値のオプション( |
label¶
label
フィルタに一致する条件は、コンテナ自身に割り当てられている label
か、その label
と値です。
次のフィルタは、 color
ラベルがどのような値を持っているかに拘わらず、一致するものを表示します。
$ docker ps --filter "label=color"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
673394ef1d4c busybox "top" 47 seconds ago Up 45 seconds nostalgic_shockley
d85756f57265 busybox "top" 52 seconds ago Up 51 seconds high_albattani
次のフィルタは color
ラベルの値が blue
に一致するコンテナを表示します。
$ docker ps --filter "label=color=blue"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d85756f57265 busybox "top" About a minute ago Up About a minute high_albattani
name¶
name
フィルタはコンテナ名の全て、または一部に一致するコンテナを表示します。
次のフィルタは nostalgic_stallman
文字列を含む名前のコンテナを表示します。
$ docker ps --filter "name=nostalgic_stallman"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b6247364a03 busybox "top" 2 minutes ago Up 2 minutes nostalgic_stallman
あるいは、一部が一致する場合でも、次のようにフィルタできます。
$ docker ps --filter "name=nostalgic"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
715ebfcee040 busybox "top" 3 seconds ago Up 1 seconds i_am_nostalgic
9b6247364a03 busybox "top" 7 minutes ago Up 7 minutes nostalgic_stallman
673394ef1d4c busybox "top" 38 minutes ago Up 38 minutes nostalgic_shockley
exited¶
exited
は、コンテナの終了コードに一致するものでフィルタします。例えば、正常終了したコンテナでフィルタをするには、次のようにします。
$ docker ps -a --filter 'exited=0'
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea09c3c82f6e registry:latest /srv/run.sh 2 weeks ago Exited (0) 2 weeks ago 127.0.0.1:5000->5000/tcp desperate_leakey
106ea823fe4e fedora:latest /bin/sh -c 'bash -l' 2 weeks ago Exited (0) 2 weeks ago determined_albattani
48ee228c9464 fedora:20 bash 2 weeks ago Exited (0) 2 weeks ago tender_torvalds
終了シグナルでフィルタ¶
コンテナの終了ステータスでフィルタできます。例えば、ステータス 137
とは、 SIGKILL(9)
による強制停止を意味します。
$ docker ps -a --filter 'exited=137'
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b3e1c0ed5bfe ubuntu:latest "sleep 1000" 12 seconds ago Exited (137) 5 seconds ago grave_kowalevski
a2eb5558d669 redis:latest "/entrypoint.sh redi 2 hours ago Exited (137) 2 hours ago sharp_lalande
以下いずれのイベントも、ステータスは 137
です。
コンテナの
init
プロセスを手動で強制停止docker kill
でコンテナを強制停止Docker デーモンが全ての実行中コンテナを停止し、再起動
status¶
status
はコンテナの状態が一致するものでフィルタします。フィルタとして使えるのは created
、 restarting
、 running
、 removing
、 paused
、 exited
、 dead
です。例えば、 running
(実行中)のコンテナでフィルタするには、次のようにします。
$ docker ps --filter status=running
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
715ebfcee040 busybox "top" 16 minutes ago Up 16 minutes i_am_nostalgic
d5c976d3c462 busybox "top" 23 minutes ago Up 23 minutes top
9b6247364a03 busybox "top" 24 minutes ago Up 24 minutes nostalgic_stallman
paused
コンテナでフィルタをするには:
$ docker ps --filter status=paused
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
673394ef1d4c busybox "top" About an hour ago Up About an hour (Paused) nostalgic_shockley
ancestor¶
ancestor
(原型)フィルタとは、コンテナのベースとなったイメージや、その派生に一致するものです。フィルタは以下の形式で指定できます。
イメージ
イメージ:タグ
イメージ:タグ@digest
ショート ID
フル ID
タグ
を指定しなければ、 latest
タグが使われます。例えば、最新(latest)の ubuntu
イメージでフィルタするには:
$ docker ps --filter ancestor=ubuntu
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
919e1179bdb8 ubuntu-c1 "top" About a minute ago Up About a minute admiring_lovelace
5d1e4a540723 ubuntu-c2 "top" About a minute ago Up About a minute admiring_sammet
82a598284012 ubuntu "top" 3 minutes ago Up 3 minutes sleepy_bose
bab2a34ba363 ubuntu "top" 3 minutes ago Up 3 minutes focused_yonath
ubuntu-c1
イメージをベースにするコンテナ、この例では ubuntu
の子供に一致するものを表示:
$ docker ps --filter ancestor=ubuntu-c1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
919e1179bdb8 ubuntu-c1 "top" About a minute ago Up About a minute admiring_lovelace
ubuntu
バージョン 12.04.5
のイメージをベースとするコンテナをフィルタ:
$ docker ps --filter ancestor=ubuntu:12.04.5
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
82a598284012 ubuntu:12.04.5 "top" 3 minutes ago Up 3 minutes sleepy_bose
レイヤ d0e008c6cf02
あるいはイメージをベースにしたコンテナでフィルタします。
$ docker ps --filter ancestor=d0e008c6cf02
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
82a598284012 ubuntu:12.04.5 "top" 3 minutes ago Up 3 minutes sleepy_bose
作成時間¶
before¶
before
フィルタは、指定したコンテナ ID か名前よりも前に作成したコンテナのみ表示します。たとえば、3つのコンテナを作成しているとします。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c3527ed70ce busybox "top" 14 seconds ago Up 15 seconds desperate_dubinsky
4aace5031105 busybox "top" 48 seconds ago Up 49 seconds focused_hamilton
6e63f6ff38b0 busybox "top" About a minute ago Up About a minute distracted_fermat
before
を指定してフィルタリングします。
$ docker ps -f before=9c3527ed70ce
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4aace5031105 busybox "top" About a minute ago Up About a minute focused_hamilton
6e63f6ff38b0 busybox "top" About a minute ago Up About a minute distracted_fermat
since¶
since
フィルタは、指定したコンテナ ID か名前よりも後に作成したコンテナのみ表示します。次の例は、 before
フィルタの時と同じコンテナを表示します。
$ docker ps -f since=6e63f6ff38b0
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c3527ed70ce busybox "top" 10 minutes ago Up 10 minutes desperate_dubinsky
4aace5031105 busybox "top" 10 minutes ago Up 10 minutes focused_hamilton
volume¶
volume
フィルタは特定のボリュームをマウントしているコンテナか、特定のパスをマウントしているコンテナを表示します。
$ docker ps --filter volume=remote-volume --format "table {{.ID}}\t{{.Mounts}}"
CONTAINER ID MOUNTS
9c3527ed70ce remote-volume
$ docker ps --filter volume=/data --format "table {{.ID}}\t{{.Mounts}}"
CONTAINER ID MOUNTS
9c3527ed70ce remote-volume
network¶
network
フィルタは、指定したネットワーク名か id をエンドポイントとして持っているコンテナのみ表示します。
以下のフィルタは接続しているネットワーク名に net1
を含む、全てのコンテナを表示します。
$ docker run -d --net=net1 --name=test1 ubuntu top
$ docker run -d --net=net2 --name=test2 ubuntu top
$ docker ps --filter network=net1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d4893ed80fe ubuntu "top" 10 minutes ago Up 10 minutes test1
ネットワーク・フィルタはネットワーク名または ID にマッチします。次の例は net1
ネットワークにアタッチしている全てのコンテナを表示します。ここではネットワーク ID でフィルタします。
$ docker network inspect --format "{{.ID}}" net1
8c0b4110ae930dbe26b258de9bc34a03f98056ed6f27f991d32919bfe401d7c5
$ docker ps --filter network=8c0b4110ae930dbe26b258de9bc34a03f98056ed6f27f991d32919bfe401d7c5
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d4893ed80fe ubuntu "top" 10 minutes ago Up 10 minutes test1
publish と expose¶
publish
と expose
フィルタは、指定したポート番号、ポート範囲、そしてプロトコルで、 tcp
です。
以下のフィルタはポート 80 を
$ docker run -d --publish=80 busybox top
$ docker run -d --expose=8080 busybox top
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9833437217a5 busybox "top" 5 seconds ago Up 4 seconds 8080/tcp dreamy_mccarthy
fc7e477723b7 busybox "top" 50 seconds ago Up 50 seconds 0.0.0.0:32768->80/tcp admiring_roentgen
$ docker ps --filter publish=80
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc7e477723b7 busybox "top" About a minute ago Up About a minute 0.0.0.0:32768->80/tcp admiring_roentgen
TCP ポート 8000-8080
の範囲で
$ docker ps --filter expose=8000-8080/tcp
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9833437217a5 busybox "top" 21 seconds ago Up 19 seconds 8080/tcp dreamy_mccarthy
UDP ポート 80
を
$ docker ps --filter publish=80/udp
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
フォーマット¶
フォーマットのオプション( --format
)は Go テンプレートを使いコンテナの出力を整形します。
Go テンプレートで置き換え可能な一覧は、次の通りです:
|
コンテナ ID |
|
イメージ ID |
|
クォートされたコマンド |
|
コンテナが作成された時間 |
|
コンテナが起動してからの時間 |
|
公開しているポート |
|
コンテナの状態(例: |
|
稼動期間とヘルス・ステータスに関するコンテナのステータス |
|
コンテナのディスク容量 |
|
コンテナ名 |
|
コンテナに割り当てられている全てのラベル |
|
コンテナに割り当てられた特定のラベル。例: |
|
コンテナ内にマウントしているボリューム名 |
|
コンテナに接続しているネットワーク名 |
ps
コマンドに --format
オプションを使えば、テンプレートで指定したデータを出力するだけでなく、 table
命令を使うとカラム(例)ヘッダも同様に表示します。
次の例はヘッダを除くテンプレートを使い、実行中の全てのコンテナに対して、 ID
と Command
エントリを句切って出力します。
$ docker ps --format "{{.ID}}: {{.Command}}"
a87ecb4f327c: /bin/sh -c #(nop) MA
01946d9d34d8: /bin/sh -c #(nop) MA
c1d3b0166030: /bin/sh -c yum -y up
41d50ecd2f57: /bin/sh -c #(nop) MA
実行中のコンテナのラベルを表形式で出力するには、次のようにします。
$ docker ps --format "table {{.ID}}\t{{.Labels}}"
CONTAINER ID LABELS
a87ecb4f327c com.docker.swarm.node=ubuntu,com.docker.swarm.storage=ssd
01946d9d34d8
c1d3b0166030 com.docker.swarm.node=debian,com.docker.swarm.cpu=6
41d50ecd2f57 com.docker.swarm.node=fedora,com.docker.swarm.cpu=3,com.docker.swarm.storage=ssd