最初に使用する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
の他の便利な例を知っている場合はお知らせください。 コマンド。