DockerでApacheのウェブサーバーを立ち上げる方法|実例付

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年9月)

✔当記事はこんな方におすすめ

「Apache Dockerについて理解したい」

「Apache Dockerの使い方を学びたい」

「Apache Dockerの具体的な実例を知りたい」

✔当記事でお伝えするポイント

  • Apache Dockerの基本的な知識
  • Apache Dockerの具体的な操作方法とその拡張
  • Apache Dockerの実践的な例

当記事では、Apache Dockerの基本から、その機能をフルに使いこなす方法まで、実例を交えて詳細に解説します。

ぜひ、最後までお読みいただくことで、Apache Dockerについての理解を深めてください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

ApacheとDockerの基本

こちらでは、ApacheとDockerの基本についてお伝えしていきます。

これらの技術について理解することで、効率的なWeb開発が可能となるはずです。

  • Apacheの特性と利用法
  • Dockerの特性と利用法

Apacheの特性と利用法

Apacheは、世界で最も人気のあるオープンソースのWebサーバーソフトウェア。

高い拡張性、信頼性、そしてコミュニティのサポートが特徴です。

基本的なApacheのセットアップはシンプルで、多くのモジュールを利用してカスタマイズできます。

例えば、以下のコマンドでApacheをインストール可能です。

sudo apt-get install apache2

Dockerの特性と利用法

Dockerは、アプリケーションをコンテナとしてパッケージ化し、どの環境でも同じように動作させられるツールです。

これにより、”動作するのは私のマシンだけ”という問題を解消します。

Dockerの基本的なコマンドは以下の通りです。

docker run -d image_name

指定したイメージをバックグラウンドで実行するコンテナが起動します。

DockerでApache Webサーバーをセットアップ

こちらでは、Dockerを使用してApache Webサーバーをセットアップする方法について詳しく説明します。

Dockerの強力な機能を活用してWebサーバーを効率的に構築しましょう。

  • Webサーバーの計画: コンテナの設計
  • コンテナの作成と実行
  • ポートマッピング、マウント、環境変数の設定
  • ボリュームの管理方法

Webサーバーの計画: コンテナの設計

Apache WebサーバーをDockerで実行する前に、コンテナの設計を計画してください。

考慮すべき点は、以下のとおりです。

  • 使用するベースイメージ
  • 必要なモジュール
  • 設定ファイルの場所

Apacheのイメージは、httpdという名前で公式より配布されています。

https://hub.docker.com/_/httpd

コンテナの作成と実行

Docker Hubには、Apacheを実行するための公式イメージが提供されています。

以下のコマンドでこのイメージを取得し、コンテナを実行できます。

docker pull httpd
docker run -d -p 80:80 httpd

ポートマッピング、マウント、環境変数の設定

上記のコマンド例では、ホストの80番ポートとコンテナの80番ポートをマッピングしています。

-P ホスト側でアクセスするポート:コンテナ側のポート

また、設定ファイルやWebコンテンツをホストからコンテナにマウントも可能です。

ボリュームの管理方法

Dockerボリュームは、コンテナのデータを永続化するためのもの。

Apacheの設定やログを保存するために、ボリュームを使用することが推奨されます。

docker run -v ローカルのディレクトリパス:コンテナのディレクトリパス

実際にApacheコンテナを実行してみる

こちらでは、Apacheコンテナを実際に動作させ、その操作方法や管理方法について詳しく説明します。

Docker上でのApacheの動作を確認し、日常的な操作を習得できます。

  • Apacheが稼働しているコンテナの操作
  • サーバー起動の確認と管理方法
  • コンテナのBashへアクセス
  • Docker for Desktopの利用

Apacheが稼働しているコンテナの操作

Apacheが動作しているコンテナは、以下のコマンドでリストアップできます。

docker ps

実行中のコンテナのID、起動時のコマンド、作成からの経過時間、ポート情報などが表示されます。

CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                                   NAMES
ad835xxx171e   httpd     "httpd-foreground"   20 seconds ago   Up 10 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   quizzical_mcclintock

サーバー起動の確認と管理方法

Apacheサーバーが正常に起動しているかを確認するには、ブラウザからホストマシンのIPアドレスまたはlocalhostにアクセスしてください。

httpdのコンテナでは、以下のようなシンプルなページが表示されればOKです。

また、コンテナのログは以下のコマンドで確認できます。

docker logs [コンテナID]

コンテナのBashへアクセス

コンテナ内に入りたいときはコンテナを起動した状態で、ターミナルで以下を実行。

docker exec -it <コンテナID> /bin/bash

<コンテナID>を適したものにうちかえれば、コンテナ内に入れます。

Docker for Desktopの利用

Docker for Desktopは、WindowsやMacでDockerを簡単に使用できるツールです。

GUIを通じてコンテナの起動、停止、ログの確認などがおこなえます。

また、Kubernetesとの統合機能も提供しており、開発から本番環境までの一貫した操作が可能です。

Linuxはベータ版のみなので、著者はDocker Engineを愛用しています。

Dockerを使ってApacheを構築する手順

こちらでは、Dockerを使用してApacheを構築する具体的な手順について詳しく説明します。

DockerとApacheの組み合わせによる効率的なWebサーバー構築の方法を学んでください。

  • docker-compose.ymlファイルの作成と理解
  • Webコンテンツの準備
  • Apacheコンテナの起動

docker-compose.ymlファイルの作成と理解

docker-compose.ymlは、複数のコンテナを一度に管理するための設定ファイル。

Apacheだけでなく、データベースやキャッシュサーバーなど、複数のサービスを連携させる場合に便利です。

以下は、Apacheを起動するための基本的なdocker-compose.ymlの内容です。

version: '3'
services:
  web:
    image: httpd
    ports:
      - "80:80"

Webコンテンツの準備

ApacheコンテナでホストするWebコンテンツは、Dockerボリュームやバインドマウントを使用してコンテナ内に配置します。

Docker run コマンドの例

$ docker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4

Dockerfileでローカルのファイルをコンテナへコピー

COPY ./public-html/ /usr/local/apache2/htdocs/

コンテナを再起動してもコンテンツは保持されます。

詳しくは公式ドキュメントを参考にしてください。

Apacheコンテナの起動

docker-compose.ymlが配置されているディレクトリで以下のコマンドを実行。

Apacheコンテナを起動しましょう。

docker compose up -d

Webサイトへのアクセスと確認

こちらでは、Docker上で動作するApache Webサーバーにアクセスする方法と、その動作を確認する手順について詳しく説明します。

  • Webサイトアクセスの方法
  • 動作確認とトラブルシューティング

Webサイトアクセスの方法

Dockerで動作するApache Webサーバーにアクセスするには、ホストマシンのIPアドレスまたはlocalhostをブラウザのアドレスバーに入力します。

ポートがデフォルトの80番でない場合は、localhost:ポート番号の形式でアクセスします。

localhost:8080

動作確認とトラブルシューティング

サーバーの動作は、Apacheのデフォルトページや、あらかじめ配置したWebコンテンツが表示されることで確認できます。

もしページが表示されない場合やエラーが発生する場合は、以下の手順でトラブルシューティングをおこなってください。

  1. Dockerコンテナのログを確認:docker logs <コンテナID>
  2. docker-compose.ymlの設定が正しいか再確認
  3. 必要に応じてApacheの設定ファイルを確認・修正

DockerとApacheを使ったWeb開発のまとめ

当記事では、DockerとApacheを使用したWeb開発について学習してきました。

DockerとApacheを使用することで、開発環境のセットアップやデプロイが簡単になるでしょう。

環境の再現性や移植性も向上し、チームでの開発が効率的におこなえます。

このプロセスを通じて、以下のチェックポイントを確認してください。

  • Dockerの基本的な操作とコンセプトの理解
  • Apacheの設定と管理方法の習得
  • docker-composeを使用したマルチコンテナ環境の構築能力

DockerとApacheの知識をさらに深めるためには、公式ドキュメントやコミュニティのフォーラムを活用することがおすすめです。

Docker Hubには多くのApacheのカスタムイメージが公開されており、それらを利用することでさらに高度な設定や機能を追加できます。

タイトルとURLをコピーしました