Dockerで始めるNginx入門:軽量Webサーバをコンテナで動かす

Nginx(エンジンエックス)は、高速・軽量なWebサーバとして有名です。
静的ファイルの配信、リバースプロキシ、ロードバランサーなど、多機能で柔軟な構成が可能です。

この記事では、Dockerを使ってNginxを最もシンプルに立ち上げる方法を紹介します。
インストールからカスタマイズ、そしてオリジナルHTMLを配信するまで、ハンズオン形式で学んでいきましょう。


この記事のゴール

  • DockerでNginxコンテナを起動できる
  • ホストマシンのHTMLをコンテナにマウントして配信できる
  • Nginxの設定ファイルを理解し、編集できる

事前準備

  • Dockerがインストール済みであること
    • macOS: Docker Desktop
    • Windows: Docker Desktop
    • Linux: sudo apt install docker.io など

確認コマンド:

docker version

Step 1. Nginxコンテナを起動する

まずは最も基本的なコマンドで、Nginxを立ち上げてみましょう。

docker run -d --name my-nginx -p 8080:80 nginx

コマンド解説

  • -d:バックグラウンドで実行
  • --name my-nginx:コンテナ名を指定
  • -p 8080:80:ホストの8080番ポートをコンテナの80番にマッピング
  • nginx:使用するイメージ名

コンテナが起動したか確認します。

docker ps

出力例:

CONTAINER ID   IMAGE     COMMAND                  STATUS         PORTS                  NAMES
abcd1234efgh   nginx     "/docker-entrypoint.…"   Up 10 seconds  0.0.0.0:8080->80/tcp   my-nginx

ブラウザで以下にアクセスします:

http://localhost:8080

「Welcome to nginx!」と表示されれば成功です。


Step 2. HTMLを自分で差し替えてみる(Bind Mount)

Nginxのデフォルトページではなく、自分のHTMLを表示してみましょう。

作業ディレクトリを準備

mkdir ~/nginx-handson
cd ~/nginx-handson

HTMLファイルを作成

echo "<h1>Hello Docker Nginx!</h1>" > index.html

コンテナをホストとマウントして起動

docker run -d --name my-nginx-local -p 8080:80 -v $(pwd):/usr/share/nginx/html nginx

ここで -v オプションは bind mount です。
ホストのカレントディレクトリをNginxのドキュメントルート /usr/share/nginx/html にマウントしています。

ブラウザを更新して、

http://localhost:8080

を開くと、あなたのHTMLが表示されるはずです 🎉


Step 3. Nginxの設定ファイルを確認する

Nginxの設定ファイルは /etc/nginx/nginx.conf にあります。
中身を見てみましょう。

docker exec -it my-nginx-local cat /etc/nginx/nginx.conf

server ブロックがあり、listen 80;root /usr/share/nginx/html; などのディレクティブが確認できます。


Step 4. カスタム設定を使う

設定ファイルを自分で変更して反映するには、設定ファイルもマウントします。

カスタム設定を作成

nginx.conf を作成します。

cat <<EOF > nginx.conf
events {}
http {
    server {
        listen 80;
        root /usr/share/nginx/html;
        index index.html;
        location / {
            add_header X-Custom-Header "Docker-Nginx";
        }
    }
}
EOF

コンテナ起動

docker run -d --name my-nginx-conf \
  -p 8080:80 \
  -v $(pwd)/index.html:/usr/share/nginx/html/index.html \
  -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf \
  nginx

ブラウザでアクセスし、
開発者ツール → ネットワーク → レスポンスヘッダを確認すると
X-Custom-Header: Docker-Nginx が追加されています。

これで、設定ファイルをDockerで自由にカスタマイズできるようになりました。


Step 5. コンテナの停止と削除

実験が終わったら、コンテナを削除してクリーンアップします。

docker stop my-nginx-local my-nginx-conf my-nginx
docker rm my-nginx-local my-nginx-conf my-nginx

まとめ

内容学んだこと
Nginxの起動docker run -d -p 8080:80 nginx
HTMLの差し替えbind mount で /usr/share/nginx/html を指定
設定ファイルの編集nginx.conf をホストからマウント
停止・削除docker stop / docker rm

次のステップ

  • docker-compose を使ってNginx+アプリケーションを連携させる
  • reverse proxy の設定を学ぶ
  • SSL(Let’s Encrypt)対応のNginx構築

まとめ一言

Dockerを使えば、Nginxの学習・検証・実運用をすべて同じ環境で行えます。
わずか1行で起動し、すぐにWeb配信を体験できるのがDockerの強みです。


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です