Docker Composeのインストール
Docker Composeは通常Docker Desktopに含まれているか、個別にインストールできます。以下に、Linux環境でDocker Compose CLIプラグインをインストールする方法を示します。
LinuxへのDocker Compose CLIプラグインのインストール
最新のDocker Compose CLIプラグインをダウンロードし、実行権限を付与してインストールします。Docker Desktopを使用していない場合は、この方法でDocker Composeをインストールします。
Docker Composeプラグインのダウンロードとインストール
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
最新バージョンのDocker Compose CLIプラグインをダウンロードし、実行権限を付与して適切なパスに配置します。
Docker Composeのバージョンの確認
docker compose version
インストールが完了したことを確認するために、Docker Composeのバージョンを確認します。
主要なDocker Composeコマンド
Docker Composeは、`docker-compose.yml`ファイルで定義されたサービスを管理するために使用されます。以下のオプションを使用して、複数のコンテナからなるアプリケーションを簡単に制御してください。
1. アプリケーションのビルドと実行
2. アプリケーションの停止と削除
3. サービスの管理
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`docker compose` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
`docker-compose.yml`ファイル構造
Docker Composeは、`docker-compose.yml`ファイルを使用して、サービス、ネットワーク、ボリュームなどを定義します。このファイルはYAML形式で書かれており、アプリケーションの構成要素とその関係を明確に示します。
基本構造
`docker-compose.yml`ファイルには、`version` (バージョン)、`services` (サービス定義)、`networks` (ネットワーク定義)、`volumes` (ボリューム定義)などの最上位キーがあります。最も重要な部分は`services`セクションで、アプリケーションを構成する各コンテナを定義します。
簡単なWebアプリケーションの例
version: '3.8'
services:
web:
image: nginx:latest
ports:
- '80:80'
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- api
api:
build: .
ports:
- '3000:3000'
environment:
NODE_ENV: production
volumes:
data_volume:
NginxウェブサーバーとNode.jsバックエンドサービスで構成される、簡単なアプリケーションの`docker-compose.yml`の例です。
主要キーの説明
`docker-compose.yml`ファイルで頻繁に使用される主要なキーについての説明です。
- version: Composeファイルのフォーマットバージョンを指定します。最新バージョンを使用することをお勧めします (例: '3.8')。
- services: アプリケーションを構成する各コンテナサービスを定義するセクションです。
- image: サービスに使用するDockerイメージ名を指定します (例: `nginx:latest`)。
- build: イメージをビルドするDockerfileのパスを指定します (例: `.` )。
- ports: ホストとコンテナ間のポートマッピングを定義します (例: `- '80:80'`)。
- volumes: データの永続性のためのボリュームマウントを定義します (例: `- ./data:/app/data`)。
- environment: コンテナ内に設定する環境変数を定義します。
- depends_on: サービス間の依存関係を定義します (例: `db`サービスが`web`サービスより先に起動する必要がある場合)。
- networks: サービスが接続するネットワークを定義します。
使用例
Docker Composeコマンドの実際の使用例を通して、複数のコンテナからなるアプリケーションを効率的に管理する方法を学びましょう。
Docker Composeプロジェクトの開始(バックグラウンド)
docker compose up -d
現在のディレクトリの`docker-compose.yml`ファイルを読み込み、すべてのサービスをバックグラウンドで開始します。
特定のサービスのみ再起動
docker compose restart web
`docker-compose.yml`に定義されたサービスのうち、'web'サービスのみを再起動します。
ログをリアルタイムで確認
docker compose logs -f
すべてのサービスのログをリアルタイムでターミナルに出力し、アプリケーションの動作を監視します。
アプリケーションの停止と関連リソースの削除
docker compose down -v
実行中のすべてのサービスコンテナを停止して削除し、定義されたネットワークと匿名ボリュームも一緒に削除します。
Docker Composeファイルのパス指定
docker compose -f /path/to/my-app/docker-compose.prod.yml up -d
デフォルトの`docker-compose.yml`の代わりに、別の名前のComposeファイルを使用するか、別のパスにあるファイルを指定して実行します。