このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:Docker ComposeでApacheコンテナを構築する方法

🌐 Docker ComposeでApacheコンテナを構築する方法

 ここでは、Docker Composeコマンド を使って Apache HTTP Serverコンテナ を構築する方法を紹介します。
 Apacheは世界中のWebサイトで使われている定番のWebサーバーであり、Docker上でも簡単に動かすことができます。
Composeを使うことで、設定から起動までを数行で自動化できます。

ここで学ぶ内容

💡 Apacheとは?

 Apache(アパッチ) は、1995年に誕生した世界で最も広く使われているオープンソースWebサーバーソフトウェアです。
 その名前は「A Patchy Server(パッチが多いサーバー)」に由来し、NCSA HTTPdを改良する形で始まりました。
 現在は Apache Software Foundation によって管理され、安定性・拡張性・セキュリティ性の高さから多くの企業や開発者に利用されています。

URL:https://httpd.apache.org/

項目内容
プロジェクト開始年1995年
管理団体Apache Software Foundation
主なバージョン1.0(1995)、2.0(2002)、2.4(2012)
特徴高い安定性、柔軟なモジュール構成、オープンソース
公式サイトhttps://httpd.apache.org/

💬 ポイント
Apacheは現在も現役のWebサーバーとして利用されており、NginxやLighttpdなどの他のWebサーバーと並んで業界標準の1つです。

🧱 Apacheコンテナの構成

Apacheコンテナでは、ローカルディレクトリ(./)
コンテナ内の /usr/local/apache2/htdocs/ にマウントします。
 これにより、ローカルでHTMLファイルを編集すると、即座にコンテナ内のWebページに反映されます。

項目説明
ホスト側のディレクトリ./(現在の作業ディレクトリ)
コンテナ側のディレクトリ/usr/local/apache2/htdocs/
目的ローカルでHTMLを編集し、コンテナで即座に反映させる。

🧹 作業前のクリーンアップ

まず、Docker環境をクリーンにしておきます。
古いコンテナやイメージが残っていると、新しい設定が反映されないことがあります。

コマンド書式

docker system prune -a --volumes

実行結果

PS C:\Users\joeac> docker system prune -a --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all anonymous volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y
オプション説明
-a未使用のイメージも含めて削除
--volumes未使用のボリュームを削除

💬 補足
コマンド実行時に「Are you sure you want to continue? [y/N]」と表示されたら、y を入力して進めましょう。
GUI派の方はDocker Desktopで削除してもOKです。

📁 compose.yamlファイルの作成

次に、Apacheコンテナの構成を定義する compose.yaml ファイルを作成します。

1.作業ディレクトリの準備

cd desktop/docker
mkdir apache1
cd apache1

実行結果

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir apache1

    Directory: C:\Users\joeac\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2025/10/14     0:49                apache1

PS C:\Users\joeac\Desktop\docker> cd apache1
PS C:\Users\joeac\Desktop\docker\apache1>

2.VS Codeを起動

code compose.yaml

VS Codeが起動したら、以下の内容を入力して保存します👇

🧾 compose.yamlの内容

services:
  apache:
    image: httpd:latest
    container_name: apache_container
    ports:
      - "80:80"
    volumes:
      - ./:/usr/local/apache2/htdocs/
設定項目説明
servicesサービスの定義を開始
apacheサービス名(任意)
image使用するDockerイメージ(ここでは httpd:latest)
container_nameコンテナ名(ここでは apache_container)
portsホストとコンテナのポートマッピング(80番ポートを公開)
volumesホストとコンテナ間のディレクトリ共有設定

💡 ポイント
ホストのポート80とコンテナのポート80をマッピングすることで、
Webブラウザから「http://localhost」でApacheのページにアクセスできるようになります。

🧩 TOPページ(index.html)の作成

ApacheコンテナがWebページを配信できるように、index.html ファイルを作成します。

コマンド

code index.html
code index.html

VS Codeで以下の内容を入力して保存します👇

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome to Apache</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            text-align: center;
            margin-top: 100px;
        }
        h1 {
            color: #333;
        }
        p {
            color: #666;
        }
    </style>
</head>
<body>
    <h1>Welcome to Apache!</h1>
    <p>This is a simple introduction to Apache HTTP Server.</p>
</body>
</html>

💬 ポイント
このHTMLファイルを編集すると、ブラウザでリロードするだけで反映されます!
これがボリュームマウントの便利なところです。

🚀 コンテナの作成と起動

設定ファイルが準備できたら、Apacheコンテナを起動します。

コマンド書式

docker compose up -d
オプション説明
upcompose.yamlの定義に基づいてコンテナを起動
-dデタッチドモード(バックグラウンド実行)

実行結果

PS C:\Users\joeac\Desktop\docker\apache1> docker compose up -d
[+] Running 7/7
 ✔ apache Pulled                                                      7.2s
   ✔ af3b83c443ec Pull complete                                       0.7s
   ✔ fbb3c2cad9f8 Pull complete                                       4.2s
   ✔ 8c7716127147 Pull complete                                       3.6s
   ✔ 4f4fb700ef54 Pull complete                                       1.0s
   ✔ 6c19a85825c3 Pull complete                                       3.9s
   ✔ 12844f4198f6 Pull complete                                       4.1s
[+] Running 2/2
 ✔ Network apache1_default     Created                                0.1s
 ✔ Container apache_container  Starte...                              0.7s
PS C:\Users\joeac\Desktop\docker\apache1>

💬 ポイント
初回実行時には httpd:latest イメージが自動でダウンロードされます。

🌍 Apacheコンテナへのアクセス

コンテナが起動したら、Webブラウザを開いて次のURLを入力します。

http://localhost

もし設定が正しければ、先ほど作成した
Welcome to Apache!」というページが表示されます。

動作確認結果
URLhttp://localhost
表示内容Welcome to Apache! とメッセージが表示される
エラーが出る場合ポート80が他のアプリで使用中の可能性あり。停止して再試行。

🧠 まとめ

Docker Composeを使えば、Apache HTTP Serverの構築はわずか数分で完了します。
Web開発者にとって、ローカルでのテスト環境を手軽に立ち上げる手段として最適です。

ステップ内容
1️⃣docker system prune -a --volumes で環境を整理
2️⃣compose.yaml を作成し、httpd:latest イメージを指定
3️⃣index.html を作成し、簡単なWebページを配置
4️⃣docker compose up -d でコンテナを起動
5️⃣ブラウザで http://localhost にアクセスして確認

💬 まとめの一言
Apacheコンテナは、ローカルで手軽にWebサーバーを構築できる最もシンプルな方法
Composeを使えば、学習から開発までスムーズに進められます!