このページで解説している内容は、以下の 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] y

docker 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公式 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ページを配信できるようにしてみましょう! 🚀