前回の記事「試して理解する話題の仮想化技術、Web制作者のためのDocker入門」では、配布されているDockerイメージを取得して、環境を構築する手順について紹介しました。

DockerHub には様々なDockerイメージが配布されていますが、当てはまる環境がなければ、Dockerイメージをカスタマイズしたり、新規に作成することで、オリジナルの環境を構築できます。

本記事では、Dockerfile使ってオリジナルの環境を構築する手順を説明しつつ、HTTP/2に対応したWebサーバーを構築していきます。

HTTP/2とは、Webサイトの通信を高速化するための仕組み(通信プロトコル)です。これまでの主流であったHTTP/1.1は、同時には6つのファイルのリクエストしか送れないため、CSSスプライトを使って画像を1つにまとめてファイル数を減らすなどして表示の高速化を図っていました。HTTP/2では100個以上のリクエストを同時に送れるようになるため、Webサイトの表示を高速化できます。

※HTTP/2について詳しく知りたい方はCodeZineの記事「「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法」がわかりやすいでしょう

次の動画は、DockerfileをビルドしてDockerイメージを作成し、HTTP/2環境のWebサーバーを立ち上げるまでの手順を撮影したものです。Dockerfileがあれば少ない手順で環境が構築できることが確認できます。

Dockerfileとはインフラ環境をコード化したファイル

Dockerは、Dockerイメージからのコンテナ環境の構築のほか、Dockerfileと呼ばれるインフラ環境をコード化したファイルを元に、環境を自動生成できます。Dockerfileのようにインフラ環境の構成をコード化することを「Infrastructure as Code」(インフラ環境のコード化)と呼ばれています。

これまでインフラ環境を構築する際は、手順書などのドキュメントを作成し管理されていましたが、再度同じ環境を構築する際には、手作業で実施するため人為的なミスも多く手間がかかっていました。コード化することにより、誰が実行してもミス無く同じ環境が作ることができ、複数のマシンをセットアップする場合にも短時間で構築できます。

次のページでは、Dockerfileの作成方法について説明します。