ps¶
Usage: docker ps [OPTIONS]
List containers
-a, --all=false Show all containers (default shows just running)
--before="" Show only container created before Id or Name
-f, --filter=[] Filter output based on conditions provided
--format=[] Pretty-print containers using a Go template
--help=false Print usage
-l, --latest=false Show the latest created container, include non-running
-n=-1 Show n last created containers, include non-running
--no-trunc=false Don't truncate output
-q, --quiet=false Only display numeric IDs
-s, --size=false Display total file sizes
--since="" Show created since Id or Name, include non-running
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
は実行中のコンテナだけ表示します。全てのコンテナを表示するには docker ps -a
を使います。
docker ps
は、可能であれば公開ポートのグループを範囲で表示します。例えば、コンテナが 100、101、102
を公開している場合、 PORT
列に 100-102/tcp
と表示します。
フィルタリング¶
フィルタリング・フラグ( -f
と --filter
)の形式は key=value
の組です。複数のフィルタを指定するには、複数のフラグを使います(例: --filter "foo=bar" --filter "bif=baz"
)。
現在、以下のフィルタがサポートされています。
- ID(コンテナの ID)
- ラベル(
label=<key>
かlabel=<key>=<value>
) - 名前(コンテナの名前)
- 終了コード(整数値 - コンテナの終了コード。実用的なのは
--all
) - 先祖/ancestor(
<イメージ名>[:<タグ>]
、<イメージID>
、<イメージ@digest>
) - 特定のイメージから作られた子コンテナを作成します。
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
status¶
status
はコンテナの状態が一致するものでフィルタします。フィルタとして使えるのは created
、 restarting
、 running
、 paused
、 exited
です。例えば、 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
tag
を指定しなければ、 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
フォーマット¶
フォーマットのオプション( --format
)は Go テンプレートを使いコンテナの出力を整形します。
Go テンプレートで置き換え可能な一覧は、次の通りです:
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