このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:Docker Composeでnginxコンテナを構築する方法

Docker Composeでnginxコンテナを構築する方法
ここでは、Docker Composeを使ってnginxコンテナを構築する方法 を、手順を追ってわかりやすく解説していきます。
nginxはApacheと並んで非常に人気の高いWebサーバーで、軽量・高速な動作が特徴です。
Docker Composeを使えば、わずか数行の設定でnginxコンテナを構築して動かすことができます!

作業前のクリーンアップ
まず、Docker環境を一度クリーンな状態にしておきましょう。
これにより、古いコンテナや未使用のイメージが整理され、作業の挙動が明確になります。
実行コマンド
docker system prune -a --volumes このコマンドは、停止済みコンテナ・未使用のネットワーク・イメージ・ビルドキャッシュ・ボリュームをすべて削除します。
確認メッセージが出た場合は、y と入力して実行を確定させます。
実行結果
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] ydocker system prune コマンドの解説
| コマンド | 説明 |
|---|---|
| docker system prune | 未使用のDockerオブジェクトを削除する。 |
| -a | すべての未使用イメージも含めて削除する。 |
| --volumes | 未使用のボリュームも削除する。 |
これを実行することで、Docker環境が完全に整理されます。
ただし、実行中のコンテナは事前に停止しておく必要があります。
GUIツールである Docker Desktop でも同様の操作が可能です。
まだ、残っているオブジェクトがあれば、Docker Desktopで削除しておきます。
コンテナ・イメージ・ボリュームをクリック操作で削除できるため、初心者の方にはこちらの方法もおすすめです。
コマンドで削除されないDockerオブジェクトは個別に削除します。

nginxとは?

nginx(エンジンエックス)は、軽量かつ高性能なWebサーバーです。
リバースプロキシ、ロードバランサー、キャッシュサーバーなど、さまざまな用途に利用されています。
Dockerを使うことで、設定済みのnginx環境をすぐに立ち上げられる のが大きな魅力です。
nginxイメージの確認
Docker Hubには、nginxの公式イメージが公開されています。
まずは、どんなタグ(バージョン)が利用できるのか確認してみましょう。

Docker Hubの「How to use this image」セクションには、使い方のサンプルが載っています。
そこからComposeファイルの書き方を参考にできます。
例として、Docker Hubに載っている定義例を見てみましょう。
web:
image: nginx
volumes:
- ./templates:/etc/nginx/templates
ports:
- "8080:80"
environment:
- NGINX_HOST=foobar.com
- NGINX_PORT=80今回はこれをシンプルにして、nginxの最新イメージを使って構築していきます。
Docker Composeファイルの作成
📁ディレクトリの作成と移動
Docker Composeでコンテナを作成するには、compose.yaml ファイルを準備します。
まず、作業用のディレクトリを作成して移動します。
cd desktop/docker
mkdir nginx
cd nginx実行結果
PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir nginx
Directory: C:\Users\joeac\Desktop\docker
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/10/08 22:22 nginx
PS C:\Users\joeac\Desktop\docker> cd nginx
PS C:\Users\joeac\Desktop\docker\nginx>✏️ compose.yamlファイルの作成
VS Codeを使って compose.yaml を作成します。
code compose.yaml「code compose.yaml」コマンドを実行します。

開いたエディタに以下の内容を記述して保存します。
services:
nginxweb:
image: nginx:latest
ports:
- "80:80"キーの後の「:」や「ー」の後に半角スペース「凵」が必要なので注意してください。「nginx:latest」のようにイメージのタグを指定する場合は、逆に半角スペース「凵」を入れるとエラーになります。
階層構造には癖があるため、Docker Hubのサンプルの記述などを参考にするとよいです。
services:
凵凵nginxweb:
凵凵凵凵image:凵nginx:latest
凵凵凵凵ports:
凵凵凵凵凵凵-凵"80:80"
🧩定義内容の解説
| 項目 | 内容 |
|---|---|
| サービス名 | nginxweb(任意の名前) |
| イメージ | nginx:latest(nginxの最新イメージ) |
| ポート | ホストの80番ポート → コンテナの80番ポートにマッピング |
この設定により、nginxのコンテナが起動し、
ホストのブラウザから http://localhost/ でアクセスできるようになります。
コンテナの作成と実行
作業ディレクトリ(compose.yamlがある場所)で以下のコマンドを実行します。
docker compose up -dこのコマンドは、compose.yamlの内容を読み取ってコンテナを自動で構築・起動します。
💡docker compose up コマンドのポイント
| オプション | 説明 |
|---|---|
| -d | バックグラウンド(デタッチド)モードで実行します。 |
| --build | 既存イメージを再ビルドしてから起動します。 |
| --remove-orphans | 不要なサービスコンテナを削除します。 |
実行結果
PS C:\Users\joeac\Desktop\docker\nginx> docker compose up -d
[+] Running 8/8
✔ nginxweb Pulled 7.3s
✔ 54e822d8ee0c Pull complete 0.7s
✔ 58d144c4badd Pull complete 0.7s
✔ b459da543435 Pull complete 1.0s
✔ 5d8ea9f4c626 Pull complete 1.0s
✔ 250b90fb2b9a Pull complete 3.7s
✔ 8c7716127147 Pull complete 3.2s
✔ 8da8ed3552af Pull complete 0.4s
[+] Running 2/2
✔ Network nginx_default Created 0.0s
✔ Container nginx-nginxweb-1 Started 0.9s
PS C:\Users\joeac\Desktop\docker\nginx>「Container nginx-nginxweb-1 Started」と表示されれば成功です!
nginxの動作確認
Webブラウザを開いて、アドレスバーに以下を入力します。
http://localhost
nginxの初期ページ(“Welcome to nginx!” と表示された画面)が見えれば、
コンテナが正常に動作している証拠です 🎉
コンテナの停止
作業が終わったら、コンテナを停止します。
docker compose stop実行結果
PS C:\Users\joeac\Desktop\docker\nginx> docker compose stop
[+] Stopping 1/1
✔ Container nginx-nginxweb-1 Stopped 停止した後もコンテナ自体は残っています。
必要に応じて削除したい場合は、以下のコマンドを使いましょう。
docker compose downイメージで理解する:nginxコンテナ構築の流れ

まとめ
今回の内容をおさらいしてみましょう👇
- docker system prune -a で環境をクリーンアップ
- compose.yaml にnginxサービスを定義
- docker compose up -d でnginxコンテナを構築・起動
- http://localhost でWebサーバーにアクセス可能
- docker compose stop / down でコンテナを停止または削除
Docker Composeを使えば、設定ファイル1つでWebサーバーを簡単に立ち上げられます。
nginxの設定ファイルを編集して、自分だけのWebページを配信できるようにしてみましょう! 🚀
