Docker入門④ -Docker Compose 概要-

Docker入門④ -Docker Compose 概要-

 これまでDockerの管理については複数回に渡り紹介した(以下の入門特集記事を参照のこと)。Docker fileを作成し1つのコンテナで起動する簡単なアプリケーションなどを作成したり、Docker Hubに作成したイメージファイルをアップロードしたり、などの1つのコンテナで管理できるDockerの使い方について紹介した。このようにこれまでに紹介した内容は、1つのコンテナという小規模なシステムに注目してきた。しかし、一般的に我々が普段よく利用するWebシステムはWebサーバーやデータベースなど役割の異なる複数のシステムが連携し構成されていることがほとんどである。

Docker入門④ -Docker Compose 概要-

 本連載の目標は、実際のシステムに近い複数のシステムからなるサービスを、複数のコンテナを利用して構成することで、よりコンテナの理解を深めることとする。

 本記事では、まず、実際のシステムに近い一般的なwebシステムのアーキテクチャーを紹介する。次に、複数のコンテナを利用するためのツールとしてDocker Composeを紹介する。

 まずは 複数のシステム についてのイメージを簡単に紹介する。Webシステムのアプリケーションを稼働させるために、複数のサーバーに役割を分割して全体構成が成り立っている。そのようなアプリケーションのインフラアーキテクチャーとしてよく知られる構成に、3層アーキテクチャーという考え方がある。IPAのリンクにも3層アーキテクチャーの情報があるので、詳細についてはそちらを参照されたい。

全体像(赤枠が 3 層アーキテクチャー)

Web サーバー
 クライアントから http リクエストを受け付けて、http レスポンスを返すサーバーで、http リクエストに応じて適切な html や画像を提供する。

アプリケーションサーバー
 ビジネスロジックを実行するサーバーで、サーバーサイドで実行する環境を提供するソフトウェアなどを提供する。

データベースサーバー
 データの永続化サービスを行うためのサーバー。

 Web システムの多くは上述のようなアーキテクチャーにより成り立っていることが多く、データベースサーバーの先にはデータそのものを保管するためのストレージと連携し、全体のシステムが成り立っている。

 次に、複数のコンテナを利用するためのツール Docker Compose について紹介する。まず、Docker Compose とは、複数のコンテナを定義し実行する Docker アプリケーションのためのツールである。Docker を単体として利用する場合には、ネットワークやストレージを管理する際には、煩雑になることは避けられない。その煩雑さを軽減するために、Docker Compose を利用することで、1 つのホストに複数の分離したシステムをコンテナとして構成することができ、運用の負荷を軽減することができる。先に紹介した複数の役割をもつサーバーが連携するようなシステムを、コンテナを利用する構築することができる。次回以降は、複数のシステムの例として、Docker Compose を用いてWordPress のシステムを構築していく。

 今回は、よくあるシステム構成である 3 層アーキテクチャーについて紹介した。また、Docker Compose の役割を紹介した。

 

参照元:

Docker Compose 概要

Docker Compose 概要 — Docker-docs-ja 17.06 ドキュメント

3. コンピュータシステムやアーキテクチャに関する知識Ⅱ

000056279.pdf (ipa.go.jp)