Docker Compose 入門
Docker Compose は、複数のコンテナから構成される Docker アプリケーションを定義して実行するためのツールです。このツールは、アプリケーションのサービス、ネットワーク、ボリュームを宣言的に定義することで、複数の Docker コンテナの管理とオーケストレーションのプロセスを簡素化します。
Docker Compose とは?
Docker Compose は、複数のコンテナから構成されるアプリケーションを構成するサービス、ネットワーク、ボリュームを記述する YAML ベースの設定ファイルです。この設定ファイルを使用すると、単一のコマンドでアプリケーションスタック全体を作成、起動、停止、管理することができます。
Docker Compose を使用するメリット
- アプリケーションのデプロイの簡素化:Docker Compose を使用すると、アプリケーションスタック全体を単一のファイルで定義できるため、異なる環境でのアプリケーションのデプロイと管理が容易になります。
- 一貫した環境:Compose ファイルでアプリケーションのサービスと依存関係を定義することで、開発、テスト、本番環境を一貫させることができ、「自分の環境では動くけど他の環境では動かない」という問題のリスクを軽減できます。
- スケーラビリティ:Docker Compose を使用すると、Compose ファイルを変更して単一のコマンドを実行することで、アプリケーション内の個々のサービスを簡単にスケールすることができます。
- コラボレーションの向上:Compose ファイルはアプリケーションの中心的な参照ポイントとなるため、チームメンバーがプロジェクトを理解して協力しやすくなります。
Docker Compose の使い始め方
Docker Compose を使用するには、システムに Docker をインストールする必要があります。Docker をインストールしたら、Compose ファイルを作成し、docker-compose
コマンドラインツールを使用してアプリケーションを管理することができます。
以下は、Web サーバーとデータベースを備えたシンプルな Web アプリケーションの Compose ファイルの例です。
version: "3"
services:
web:
build:.
ports:
- "8080:80"
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: myapp
MYSQL_USER: myapp
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: supersecret
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
この例では、Compose ファイルには Web サーバーと MySQL データベースの 2 つのサービスが定義されています。web
サービスは現在のディレクトリ内の Dockerfile からビルドされ、db
サービスは公式の MySQL イメージを使用します。サービスはネットワークを介して接続され、データベースのボリュームが定義されてデータが永続化されます。
アプリケーションを起動するには、Compose ファイルと同じディレクトリで以下のコマンドを実行します。
docker-compose up -d
これにより、Compose ファイルで定義されたコンテナがデタッチドモードで作成され、起動します。