Docker Composeとは
Docker Composeの目的と、複数コンテナのアプリケーションをオーケストレーションする仕組みを理解します。
「Docker Composeとは」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
Docker Compose へようこそ
ようこそ。ここまでで、個々のコンテナを実行する方法を学びました。しかし、アプリケーションに複数のコンテナが必要な場合はどうすればよいでしょうか。
実際のアプリケーションの多くは、1つのコンテナだけで構成されているわけではありません。Web サーバー、データベース、キャッシュなどが組み合わされていることがよくあります。

複数コンテナの課題
データベースを使用する Web アプリを実行するとします。それぞれに対して個別の docker run コマンドが必要になります。
すぐに複雑になってしまいます。コンテナ同士はどのように通信するのでしょうか。すべてを正しい順序で起動するにはどうすればよいでしょうか。
複数のコンテナとその接続を手動で管理するのは、手間がかかり、ミスも起こりやすくなります。
Docker Compose の登場
そこで登場するのが Docker Compose です。これは、複数コンテナで構成される Docker アプリケーションを定義し、実行するためのツールです。
個別の docker run コマンドをいくつも使う代わりに、アプリケーション全体のスタックを1つの設定ファイルで定義します。
Compose ファイル:docker-compose.yml
Docker Compose では、アプリケーションのサービスを設定するために、docker-compose.yml(または同様の名前)のファイルを使用します。
このファイルでは、すべての内容を説明するために、シンプルで人間が読みやすい形式である YAML(Yet Another Markup Language)を使用します。
アプリケーション全体の設計図のようなものです。
Compose におけるサービスとは
docker-compose.yml ファイルでは、アプリケーションの各部分をサービスと呼びます。
- 通常、1つのサービスが1つのコンテナを表します。
- 使用する Docker イメージを定義します。
- ポート、ボリューム、環境変数、依存関係などを設定できます。
Compose によるネットワーク管理
Docker Compose の優れた機能の1つは、コンテナ間のネットワークを簡単にできることです。
Compose はデフォルトで、docker-compose.yml ファイルに定義されたすべてのサービス用に、1つのネットワークを作成します。
これにより、Web アプリやデータベースなどのサービスは、サービス名をホスト名として簡単に相互通信できます。
Compose でデータを管理する
単一のコンテナの場合と同様に、複数コンテナのアプリケーションでも永続データが必要になることがよくあります。
Docker Compose では、docker-compose.yml ファイル内でボリュームを定義して管理できます。
これにより、たとえばコンテナを停止または削除してもデータベースのデータが失われず、データの整合性が保たれます。
Compose のシンプルなワークフロー
docker-compose.yml ファイルの準備ができたら、アプリケーション全体を簡単に実行できます。
ファイルがあるディレクトリに移動し、docker compose up を実行するだけです。
このコマンドにより、ファイルに定義されたすべてのサービスについて、必要に応じてイメージをビルドし、コンテナを作成、起動して接続します。
Compose を使う理由:主なメリット
Docker Compose には、特に開発環境やテスト環境で役立ついくつかの利点があります。
- 単一のコマンド:1つのコマンドでアプリケーション全体を起動・停止できます。
- 再現性:全員がまったく同じ構成で実行できます。
- 分離:サービスは分離された環境で実行されます。
- 開発の簡略化:ローカルの開発環境や迅速なテストに最適です。
クイックチェック
Docker Compose の基本的な考え方を学びました。
主な目的を理解できているか確認してみましょう。
まとめ:アプリケーションをオーケストレーションする
よくできました。Docker Compose の基本概念を理解できました。
- 複数コンテナのアプリケーションを簡単に実行できます。
- 1つの YAML ファイル(
docker-compose.yml)で、すべてのサービスを定義します。 - サービスのネットワークとデータの永続化を管理します。
- 複雑なアプリケーションの開発とデプロイがはるかに簡単になります。
次は、最初の docker-compose.yml ファイルの書き方を学びます。
よくある質問
「Docker Composeとは」レッスンは無料ですか?
はい。「Docker Composeとは」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「Docker Composeとは」で何を学びますか?
Docker Composeの目的と、複数コンテナのアプリケーションをオーケストレーションする仕組みを理解します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Docker Composeとは」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Docker Composeとは
- Composeファイルの記述
- 複数サービスアプリのデプロイ
- 環境変数と.envファイル