docker compose ls コマンドで Compose プロジェクトをリスト表示する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Docker Compose プロジェクトをリスト表示および管理するためにdocker compose lsコマンドを効果的に使用する方法を学びます。まず、サンプルの Compose プロジェクトをセットアップします。必要な場合には Docker Compose のインストール、docker-compose.ymlファイルの作成、そしてプロジェクトの起動を含みます。

プロジェクトのセットアップ後、docker compose lsを使用して Compose プロジェクトをリスト表示するさまざまな方法を探求します。これには、実行中のプロジェクトのみをリスト表示する方法、停止中のプロジェクトも含むすべてのプロジェクトをリスト表示する方法、プロジェクト名のみを表示する方法、特定の条件に基づいてプロジェクトをフィルタリングする方法が含まれます。この実験の終わりまでに、Compose 環境を可視化するためにdocker compose lsを使用することに習熟しているでしょう。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/ls -.-> lab-555083{{"docker compose ls コマンドで Compose プロジェクトをリスト表示する方法"}} docker/ps -.-> lab-555083{{"docker compose ls コマンドで Compose プロジェクトをリスト表示する方法"}} docker/pull -.-> lab-555083{{"docker compose ls コマンドで Compose プロジェクトをリスト表示する方法"}} end

サンプル Compose プロジェクトの開始

このステップでは、サンプルの Compose プロジェクトを開始する方法を学びます。Docker Compose を使用する前に、まずインストールする必要があります。LabEx VM 環境には Docker Compose がプリインストールされていないため、最初にインストールを行います。

Docker Compose バイナリをダウンロードし、実行可能にします。

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

インストール後、Docker Compose のバージョンを確認することでインストールを検証できます。

docker-compose --version

コンソールにバージョン情報が表示され、Docker Compose が正しくインストールされたことが確認できます。

次に、簡単な Compose プロジェクトを作成しましょう。プロジェクト用のディレクトリを作成し、その中にdocker-compose.ymlファイルを作成します。このファイルはアプリケーションのサービスを定義します。

まず、my-compose-appという名前のディレクトリを作成します。

mkdir ~/project/my-compose-app
cd ~/project/my-compose-app

次に、nanoエディタを使用して~/project/my-compose-appディレクトリ内にdocker-compose.ymlファイルを作成します。

nano docker-compose.yml

以下の内容をdocker-compose.ymlファイルに追加します。このファイルはnginxイメージを使用するwebという単一のサービスを定義しています。

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

ファイルを保存し、nanoエディタを終了します(Ctrl + X、次にY、そしてEnterを押します)。

サービスを開始する前に、nginx:latestイメージがローカルで利用可能であることを確認する必要があります。docker pullコマンドを使用してイメージをプルできます。

docker pull nginx:latest

docker-compose.ymlファイルと必要なイメージが用意できたので、docker-compose upコマンドを使用して Compose プロジェクトを開始できます。-dフラグはサービスをデタッチモードで実行し、バックグラウンドで動作させます。

docker-compose up -d

このコマンドは、docker-compose.ymlファイルで定義されたwebサービスを作成して開始します。サービスが作成され、開始されていることを示す出力が表示されるはずです。

サービスが実行中であることを確認するには、docker psコマンドを使用して実行中のコンテナをリスト表示します。webサービスのコンテナが表示されるはずです。

docker ps

また、Web ブラウザを開いて LabEx VM の IP アドレスにアクセスすることで、Nginx Web サーバーにアクセスできます。コンテナのポート 80 をホストのポート 80 にマッピングしたため、デフォルトの Nginx ウェルカムページが表示されるはずです。

docker compose ls を使用して実行中の Compose プロジェクトをリスト表示

前のステップでは、my-compose-appという名前のサンプル Compose プロジェクトを開始しました。ここでは、docker compose lsコマンドを使用して実行中の Compose プロジェクトをリスト表示する方法を学びます。

docker compose lsコマンドは、すべての Compose プロジェクトをリスト表示するために使用されます。デフォルトでは、実行中のプロジェクトのみが表示されます。

docker-compose.ymlファイルが配置されている~/project/my-compose-appディレクトリにいることを確認してください。

cd ~/project/my-compose-app

次に、docker compose lsコマンドを実行します。

docker compose ls

以下のような出力が表示されるはずです:

NAME              STATUS    CONFIG FILES
my-compose-app    running   docker-compose.yml

この出力は、my-compose-appという名前の実行中の Compose プロジェクトが 1 つ存在し、docker-compose.yml設定ファイルを使用していることを示しています。

docker compose lsコマンドは、現在アクティブでコンテナが実行されている Compose プロジェクトを素早く確認する方法です。

docker compose ls -a を使用して停止中の Compose プロジェクトを含む全プロジェクトをリスト表示

前のステップでは、実行中の Compose プロジェクトをリスト表示しました。デフォルトでは、docker compose lsは少なくとも 1 つのコンテナが実行中のプロジェクトのみを表示します。停止中のプロジェクトも含む全ての Compose プロジェクトを表示するには、-aフラグを使用する必要があります。

まず、最初のステップで開始したmy-compose-appプロジェクトを停止しましょう。~/project/my-compose-appディレクトリにいることを確認してください。

cd ~/project/my-compose-app

次に、docker-compose downコマンドを使用してプロジェクトを停止します。このコマンドは、docker-compose upで作成されたコンテナ、ネットワーク、ボリュームを停止して削除します。

docker-compose down

サービスとリソースが停止・削除されていることを示す出力が表示されるはずです。

プロジェクトが停止した状態で、デフォルトのdocker compose lsコマンドを使用して再度 Compose プロジェクトをリスト表示してみましょう。

docker compose ls

今回は、my-compose-appプロジェクトが停止しているため、リストに表示されないはずです。

では、docker compose ls -aコマンドを使用して、停止中のプロジェクトも含む全ての Compose プロジェクトをリスト表示します。

docker compose ls -a

以下のような出力が表示されるはずです:

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

この出力は、my-compose-appプロジェクトが存在し、その状態がexited(停止中)であることを示しています。-aフラグは、現在の状態に関わらず、システム上で定義された全ての Compose プロジェクトを確認するのに便利です。

docker compose ls -q を使用してプロジェクト名のみをリスト表示

前のステップでは、Compose プロジェクトをステータスや設定ファイルと共にリスト表示しました。スクリプトで使用する場合など、プロジェクト名のリストのみが必要な場合があります。docker compose ls -qコマンドを使用すると、これを実現できます。

-qフラグは"quiet"(簡潔表示)を意味し、プロジェクト名以外の出力を抑制します。

~/project/my-compose-appディレクトリにいることを確認してください。

cd ~/project/my-compose-app

次に、docker compose ls -qコマンドを実行します。

docker compose ls -q

コンソールには Compose プロジェクトの名前のみが表示されます:

my-compose-app

これは、余分な情報なしにプロジェクト名のクリーンなリストを取得したい場合に便利です。-qフラグは-aフラグと組み合わせて、停止中のプロジェクトも含む全ての Compose プロジェクト名をリスト表示することもできます。

試してみましょう:

docker compose ls -a -q

以下のように表示されます:

my-compose-app

これは、-qフラグがプロジェクトの実行状態に関わらずプロジェクト名のみを出力することを確認しています(-aフラグと組み合わせた場合でも同様です)。

docker compose ls --filter を使用して Compose プロジェクトをフィルタリング

この最終ステップでは、docker compose lsの出力を--filterフラグでフィルタリングする方法を説明します。多くの Compose プロジェクトがある場合に特定の条件でプロジェクトを検索する際に便利です。

--filterフラグでは、key-value ペアを指定して結果をフィルタリングできます。一般的なフィルタとしてstatusによるフィルタがあります。

まず、my-compose-appプロジェクトが停止していることを確認しましょう。前のステップで停止させましたが、確認するのが良い習慣です。

cd ~/project/my-compose-app
docker-compose down

次に、--filterフラグを使用して実行中の Compose プロジェクトのみをリスト表示します。プロジェクトは停止中なので、このコマンドでは何も表示されないはずです。

docker compose ls --filter status=running

実行中の Compose プロジェクトがないため、出力は表示されません。

では、--filterフラグを使用して停止中の Compose プロジェクトのみをリスト表示しましょう。

docker compose ls --filter status=exited

以下のような出力が表示されます:

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

これはmy-compose-appプロジェクトのステータスがexitedであるため表示されています。

nameなど他の条件でもフィルタリングできます。my-compose-appという名前のプロジェクトをフィルタリングしてみましょう。

docker compose ls --filter name=my-compose-app

これでもmy-compose-appプロジェクトが表示されます:

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

--filterフラグは、特に多くの Compose ファイルで定義されたアプリケーションがある環境で、Compose プロジェクトを管理・表示する強力な方法を提供します。

まとめ

この実験では、Docker Compose プロジェクトをリスト表示するdocker compose lsコマンドの使用方法を学びました。まず Docker Compose をインストールし、docker-compose.ymlファイルとdocker-compose up -dコマンドを使用してサンプルの Compose プロジェクトを作成・起動しました。

その後、docker compose lsコマンドの様々なオプションを検討しました。実行中のプロジェクトをリスト表示するdocker compose ls、停止中のプロジェクトも含む全てのプロジェクトをリスト表示するdocker compose ls -a、プロジェクト名のみをリスト表示するdocker compose ls -q、特定の条件でプロジェクトをフィルタリングするdocker compose ls --filterを使用しました。これらの手順により、Compose プロジェクトを管理・検査するためのdocker compose lsコマンドの多様性が実証されました。