GNU/Linux >> Linux の 問題 >  >> Linux

Dockerpsコマンドの便利な例

最初に使用するDockerコマンドの1つは、 docker psです。 指図。実行中のコンテナが表示されます:

docker ps

実際、このコマンドを実行すると、実行中のコンテナとその一意のコンテナID、イメージ名、実行中のコマンド、実行からの時間(稼働時間)、および使用中のポートのリストが表示されます。

しかし、あなたはそれでもう少しすることができます。停止したコンテナを表示したり、結果をフィルタリングしたり、コンテナIDを表示したりできます。

この重要なDockerコマンドをもう少し詳しく見てみましょう。

dockerpsコマンド

Dockerには、POSIXに適した命名規則で実行中のすべてのコンテナーを表示するためのエイリアスがあります。

それがpsです Dockerのサブコマンド。これは、 docker container lsのエイリアスです。 。ご想像のとおり、これはDockerコンテナの一覧表示に使用されます。

docker psを実行する例を次に示します。 私のコンピューターで:

$ docker ps 
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

ご覧のとおり、このコマンドは実行中のすべてのコンテナに関する詳細を表示します。

表示される詳細は、コンテナの一意のID、イメージの名前、コンテナが実行しているコマンド、コンテナが作成された日付、稼働時間、マップされたポート、およびコンテナ名です。

システム管理者は、このコマンドをスクリプトで使用することがよくあります。 Dockerには、 docker psを実行するときに役立つオプションがいくつか用意されています。 スクリプトで。

実行中のコンテナーだけでなく、すべてのコンテナーを表示します

UNIXのpsとして コマンドはプロセス(実行中のプログラム)を表示するために使用され、Dockerは同様に動作します。

docker psを実行しています アクティブなDockerコンテナのみが表示されます。

実行中のコンテナを停止しても、そのコンテナはまだ存在していますが、実行されていないだけです。

停止状態のコンテナを確認するには、-allを使用します (または -a )そのようなオプション:

docker ps --all

コンテナtransmission_webを停止しました 。出力で何が得られるか見てみましょう。

$ docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

ご覧のとおり、 -a オプションは、停止されたコンテナも表示します。

より正確な結果を得るために、dockerpsの出力をフィルタリングします

docker ps コマンドには非常に便利なオプション--filterがあります (または -f 略して)。

オプション名から明らかなように、次のフィールドを使用してコンテナを除外できます。

  • id
  • 名前
  • ラベル
  • 終了
  • ステータス
  • 祖先
  • 以降
  • ボリューム
  • 公開
  • 健康
  • 分離

nextcloud_serverという名前のコンテナを作成しました 。コンテナの詳細を知りたいのですが、探している名前のコンテナだけです。 nameの使い方を見てみましょう フィルタ。

$ docker ps --filter "name=nextcloud_server"
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                   NAMES
58c7013a49c3   nextcloud   "/entrypoint.sh apac…"   3 hours ago   Up 3 hours   0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server

いくつかのコンテナを実行していますが、 nameを使用して渡しています フィルタには、名前に一致するコンテナのみが表示されます。

idを使ってみましょう フィルター。 IDが「140161b8b139」のMariaDBコンテナがあります。これを実現するには、次のコマンドを使用します。

$ docker ps --filter "id=140161b8b139"
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS        PORTS      NAMES
140161b8b139   mariadb   "docker-entrypoint.s…"   15 hours ago   Up 15 hours   3306/tcp   nextcloud_db

簡単! IDが一致するコンテナを入手しました。

コンテナを作成された順序で表示します

はい、-latest を使用して、作成日の順に並べ替えられたコンテナを一覧表示できます。 (または l 略して)。

順序は一番上が最新で一番下が最も古いです。

これは、コマンド docker ps --latestを実行した場合の出力例です。 私のコンピューターで:

$ docker ps --latest
CONTAINER ID   IMAGE                              COMMAND                  CREATED        STATUS                      PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   15 hours ago   Up 15 hours                 0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  16 hours ago   Exited (137) 16 hours ago                                           transmission_web

このコマンドにはいくつかの落とし穴があります。

  • 「依存関係」として使用されているコンテナは一覧表示されません
  • 出力にはすべてのコンテナの状態が含まれます(つまり、停止しているコンテナも一覧表示されます)

MariaDBを「依存関係」としてコンテナ「nextcloud_server」を作成しました。 -latest を使用すると、コンテナが出力に表示されないようにします フラグ。

多くのスクリプトを作成しますか?コンテナIDのみを表示する

スクリプトを作成していて、コンテナーIDのみを処理して、コンテナーに対してアクションを実行できると仮定します。そのためには、-quietを使用できます (または -q 略して)オプション。

以下に示すのは、 docker ps -qを実行した場合の出力です。 私のコンピューターで。

$ docker ps -q
58c7013a49c3
140161b8b139

ご覧のとおり、出力は(実行中のコンテナーの)コンテナーIDのみで構成され、他には何も含まれていません。

ご覧のとおり、Docker psコマンドには、実行中のコンテナー情報を表示するだけではありません。何か新しいことを学んだ場合、または docker psの他の便利な例を知っている場合はお知らせください。 コマンド。


Linux
  1. Linuxでのddコマンドの5つの実用例

  2. Linuxでidコマンドを使用する方法:5つの便利な例

  3. 5 firewall-cmd コマンドの便利な例

  1. Linuxでの12の便利なWgetコマンドの例

  2. Linuxでのlsコマンド:17の便利な例の説明

  3. LinuxでのSplitコマンドの9つの便利な例

  1. Linuxでの20の便利なDockerコマンドの例

  2. 14Linuxで役立つ「ls」コマンドの例

  3. 9Linuxでの便利なtouchコマンドの例