システムに存在するすべてのDockerコンテナをどのように一覧表示しますか?
これを行うには2つの方法があります:
-
docker ps
を使用する コマンド(古くて一般的な方法) docker container
コマンド(新しくてあまり知られていない方法)
クイックリファレンスとして、最も一般的な例を含むコマンドを簡単にリストします。
psコマンド | コンテナコマンド | コマンド表示 |
---|---|---|
docker ps | docker container ls | 実行中のコンテナ |
docker ps -a | docker container ls -a | すべてのコンテナ |
docker ps -f "status =exited" | docker container ls -f "status =exited" | 停止したコンテナ |
docker ps -q | docker container ls -q | 実行中のコンテナのID |
docker ps -l </ td> | docker container ls -l </ td> | 最新に作成されたコンテナ |
ご覧のとおり、両方のps
およびcontainer
コマンドはオプションと同じです。
ただし、dockerはコマンドを適切に整理する必要があるため、docker container ls
を使用することをお勧めします。 指図。
このため、docker container ls
を使用します 詳細な例のコマンド。
オプションがないと、実行中のコンテナのみが表示されます。
docker container ls
出力は詳細なものです:
[email protected]:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f03e48cb07ea ubuntu "bash" 8 seconds ago Up 6 seconds ubuntu-c-1
93f84eb0f579 alpine "/bin/sh" 23 seconds ago Up 22 seconds alp_con2
この出力を初めて見る場合は、出力のさまざまな要素について説明します。
Container ID
-コンテナを識別するための一意の数値IDImage
-コンテナを作成したDockerイメージCommand
-コンテナの起動中に実行されるデフォルトのコマンドCreated
-コンテナが作成された相対時間Status
-コンテナの状態(後で説明します)Ports
-コンテナの公開されたポートName
-コンテナの名前。何も指定されていない場合は、とにかくランダムな名前が割り当てられます。
システム上のすべてのコンテナを表示する場合は、オプション-a
を使用します 。
docker container ls -a
これが出力例で、停止したコンテナもいくつか表示されていることがわかります。
[email protected]:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f03e48cb07ea ubuntu "bash" 37 minutes ago Up 37 minutes ubuntu-c-1
93f84eb0f579 alpine "/bin/sh" 37 minutes ago Up 37 minutes alp_con2
1c1c04a84186 alpine "bash" 38 minutes ago Created alp_con
6fbc4bf4897b ubuntu "/bin/bash" 2 hours ago Exited (0) 2 hours ago fervent_hofstadter
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
853e748608bc hello-world "/hello" 2 hours ago Exited (0) 2 hours ago stoic_engelbart
停止したコンテナのみを一覧表示する場合は、exited
で出力をフィルタリングできます。 ステータス。
docker container ls --filter "status=exited"
フィルタリングされた出力は次のとおりです。
[email protected]:~$ docker container ls --filter "status=exited"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6fbc4bf4897b ubuntu "/bin/bash" 2 hours ago Exited (0) 2 hours ago fervent_hofstadter
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
853e748608bc hello-world "/hello" 2 hours ago Exited (0) 2 hours ago stoic_engelbart
exited
状態は停止したコンテナ用です。さまざまな目的に使用できるコンテナには、さらにいくつかのステータスがあります。
Created
-作成されたが開始されていないコンテナrestarting
-再起動中のコンテナrunning
-実行中のコンテナpaused
-プロセスが一時停止されたコンテナexited
-停止したコンテナdead
-停止しようとしたが失敗したコンテナ
実際、フィルタリングはステータスに限定されず、コンテナID、名前、画像など、コンテナリスト出力の他の要素に基づいてフィルタリングできます。次の例では、この概念を使用しています。
フィルタを使用すると、ancestor
のみを使用して、特定の画像に関連付けられているすべてのコンテナを表示できます。 フィルタ。
docker container ls -a --filter "ancestor=image_name"
これは、AlpineLinuxのDockerイメージに関連付けられているすべてのコンテナーを表示する出力です。
[email protected]:~$ docker container ls -a --filter "ancestor=alpine"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93f84eb0f579 alpine "/bin/sh" 48 minutes ago Up 48 minutes alp_con2
1c1c04a84186 alpine "bash" 49 minutes ago Created alp_con
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
上記のすべてのコマンドがコンテナに詳細な出力を持っていることに気づきましたか?
コンテナ名、関連する画像、そのステータスなどの追加情報が必要ない場合は、クワイエットオプション-q
を使用できます。 。
たとえば、-q
を使用すると 前の例のオプションでは、AlpineLinuxに関連付けられているすべてのコンテナのIDのみが表示されます。
[email protected]:~$ docker container ls -a -q --filter "ancestor=alpine"
93f84eb0f579
1c1c04a84186
8b9565ba7661
これは、Dockerイメージのすべてのコンテナを削除する場合などに便利です。
さて、このDockerチュートリアルにはこれで十分です。 Dockerにコンテナーをリストするための十分なユースケースについて言及したと思います。このようなチュートリアルをもっと購読してください。