ホーム > その他外部パッケージ > docker compose

Docker Composeコマンドガイド

Docker Composeは、複数のコンテナからなるDockerアプリケーションを定義し、実行するためのツールです。YAMLファイルを使用してアプリケーションのサービスを構成し、単一のコマンドですべてのサービスを開始できます。これにより、複雑なアプリケーション環境を簡単に管理できます。

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ファイルを使用するか、別のパスにあるファイルを指定して実行します。


同じカテゴリのコマンド