Compose ファイルから基本的なグラフを生成する
このステップでは、Docker Compose ファイルの基本的なグラフ表現を生成する方法を学びます。これはサービス、ネットワーク、ボリューム間の関係を視覚化するのに役立ちます。
まず、Docker Compose をインストールする必要があります。LabEx 環境にはプリインストールされていないため、pip
を使用してインストールします。
sudo apt update
sudo apt install -y python3-pip
pip install docker-compose
インストールが完了したら、Docker Compose のバージョンを確認してインストールを検証できます。
docker-compose --version
docker-compose version 1.29.2, build 5becea4c
のような出力が表示されるはずです。
次に、簡単な Docker Compose ファイルを作成しましょう。プロジェクトディレクトリに移動し、docker-compose.yml
というファイルを作成します。
cd ~/project
nano docker-compose.yml
docker-compose.yml
ファイルに以下の内容を追加します:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: ubuntu:latest
command: sleep infinity
このdocker-compose.yml
ファイルは、nginx:latest
イメージを使用するweb
サービスとubuntu:latest
イメージを使用するapp
サービスの 2 つを定義しています。web
サービスはホストのポート 80 をコンテナ内のポート 80 にマッピングします。app
サービスは単にコンテナを実行し続けるためにsleep infinity
コマンドを実行します。
この compose ファイルから基本的なグラフを生成するには、docker-compose config
コマンドに--graph
フラグを付けて使用します。このコマンドは compose ファイルを解析し、DOT 形式でグラフ表現を出力します。
docker-compose config --graph
出力は DOT 言語(グラフ記述言語)で表示されます。サービスとそれらの基本的な接続関係が表示されます。例えば、次のような内容が表示されるかもしれません:
digraph {
compound=true
"web" [label="web"]
"app" [label="app"]
"web" -> "app" [label="depends_on"]
}
この DOT 出力は、web
とapp
がノードで、"depends_on"というラベルの付いたweb
からapp
への有向エッジがある有向グラフを表しています。この簡単な例では明示的に依存関係を定義していませんが、docker-compose config --graph
は一部の関係を推測することができます。