このページで解説している内容は、以下の 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 によって管理され、安定性・拡張性・セキュリティ性の高さから多くの企業や開発者に利用されています。

| 項目 | 内容 |
|---|---|
| プロジェクト開始年 | 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.yamlVS 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.htmlcode 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| オプション | 説明 |
|---|---|
| up | compose.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!」というページが表示されます。

| 動作確認 | 結果 |
|---|---|
| URL | http://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を使えば、学習から開発までスムーズに進められます!
