こんにちは、フルスタックエンジニアのryuです。
今回の記事はDockerを使ってApacheを構築する方法を解説します。ApacheとはWebサーバーを構築するためのソフトウェアです。Dockerを使用して簡単にWebサーバーをローカル環境に構築することができます。Webサイトの開発環境をローカルに作成する場合に便利です。
目次
Dockerを使ってApacheを構築する方法解説
DockerでApache環境はどうやって作成するの・・・?
今回の記事では、Dockerを使ってApacheを構築する方法の解説を行います。docker-compose.ymlファイルの作成から解説します。手順は以下の通りです。
- docker-compose.ymlファイルの作成
- Apacheのコンテナを起動
- Webサイトに接続できるか確認
では、早速解説します!
Apacheのdocker-compose.ymlファイル
まず、Apacheのdocker-compose.ymlファイルを作成します。
docker-compose.ymlとは、コンテナを起動させるための設定ファイルです。docker-composeが良く分からない方はこちらの記事をご覧ください。
docker-composeとは?dockerコマンドとの違いを理解しよう【Docker入門⑥】
では、docker-compose.ymlファイルを作成しましょう。ファイルの中身は以下のようになります。
version: "3"
services:
web:
image: httpd
volumes:
- .:/usr/local/apache2/htdocs/
ports:
- "80:80"
ファイルの中身について説明します。
docker-compose.ymlファイルの中身解説
先ほど作成したdocker-compose.ymlファイルの解説をします。ファイル内では、以下の3つの設定を行っています。
- image
- volumes
- ports
まず、imageについてです。imageはDockerのイメージを指定します。
今回使用するのは、httpdを使用します。DockerHubに保存されているイメージをpullしてローカル環境に引っ張っています。
httpdのイメージの詳細はこちらをご覧ください。
次にvolumesです。これはローカルのディレクトリとdockerコンテナ内のディレクトリを共有します。index.htmlなどWebコンテンツを保存するために、共有しています。
最後にportsです。これはローカルPCのポートとコンテナのポートを接続します。つまり、ローカルの80にアクセスした場合、コンテナの80にアクセスされることになります。
Apacheのコンテナを起動してみる
先ほどまでdocker-compose.ymlファイルの準備をしました。ファイルの準備が完了したら、Apacheのコンテナを起動してみましょう。
Apacheで表示するWebコンテンツの準備
Apacheを起動する前にWebコンテンツの準備をしましょう。Webサイトに表示させる文字です。
index.htmlファイルを作成して、docker-compose.ymlと同じディレクトリに配置しましょう。
<h1>test</h1>
これで準備完了です!
Apacheコンテナを起動する
では、コンテナを起動してみましょう。起動するコマンドは以下の通りです。
docker-compose up -d
コマンドを実行すると、Dockerhub上からhttpdイメージをpullします。doneという文字が表示されたら完了です。
コンテナが起動しているか確認してみましょう。
docker ps
“docker ps”コマンドを使用すると、起動しているコンテナを確認することができます。
Webサイトにアクセスして確認する
最後に動作確認を行います。
ブラウザで「http://localhost」と入力します。そうすると先ほど作成したindex.htmlの中身が表示されます。
docker-composeを使用すれば、簡単にApache環境を構築することができました。
Dockerを使ってApacheを構築する方法まとめ
今回の記事では、Dockerを使ってApacheを構築する方法を解説しました。まとめると以下のようになります。
- docker-compose.ymlファイルの作成
- Apacheのコンテナを起動
- Webサイトに接続できるか確認
開発環境をローカルで作成するときは便利なので、ぜひ覚えておきましょう。
当ブログでは、インフラに関する技術を発信しているので興味のある方は是非ご覧ください。
さらにDockerを勉強したい方は、こちらの動画や参考書がオススメです。
ゼロからはじめる Dockerによるアプリケーション実行環境構築