Docker × nginx でWebサーバー構築
🚀 はじめに
Webサーバーの立ち上げ方をしっかり理解したい🔥
この記事では Docker × nginx を使って、Webサーバー構築を学びます!
「なんとなく動いている」から脱却し、
仕組みごと理解できる環境構築を目指しましょう💪
📌 この記事でやること
Dockerとnginxを使用し、Webサーバーを構築します。
紹介する方法は2つ👇
| 方法 | 概要 |
|---|---|
| ✅ 方法① | 手動構築(コンテナに入って自分で nginx を入れる) |
| ✅ 方法② | Dockerfile を使って自動構築 |
どちらの方法でも、最終的には ホストPCのブラウザから nginx にアクセスできるようにします 🌐
💡 前提知識:何が必要?
Webサーバーを Docker 上に立てるには、以下が必要です👇
- nginxをインストールしたイメージ
- イメージをもとに起動したコンテナ
- ホストPC ⇔ コンテナ間の通信(ポートフォワーディング)
🔁 ポートフォワードとは?
ホストPCのポート番号と、Dockerコンテナ内のポート番号をつなぐ設定のこと
(ホストPCで8080にリクエストが来たら、コンテナ内の80番に渡してね!という意味)
🎯 ゴールはどこか
ブラウザで http://localhost:8080 にアクセスすると、
Docker コンテナ内の nginx がレスポンスを返す状態を作ります🌈
方法①でも②でも、最終的な成果物(Webサーバー動作)は同じです。
方法① 手動でWebサーバー構築
Dockerfileは使わず、コンテナの中で手作業で nginx をインストールしてみよう!
🔹 1. Ubuntuイメージを取得
docker pull ubuntu:22.04
🔹 2. コンテナ起動(ポートフォワード付き)
docker run -it -p 8080:80 --name myubuntu ubuntu:22.04
-
-it: コンテナに入って対話モードにする -
-p 8080:80: ホスト側 8080 ポート → コンテナ内 nginx の 80 ポート -
--name myubuntu: コンテナ名の指定
🔹 3. コンテナの中に入る
docker exec -it myubuntu /bin/bash
以下は コンテナ内で実行👇
🔹 4. パッケージ情報を最新化
apt update
🔹 5. nginxをインストール
apt install -y nginx
🔹 6. nginx の起動
nginx
⚠️ 通常 nginx はバックグラウンド起動されるため、
このまま exit するとコンテナごと止まってしまいます!
✅ 結果の確認
ブラウザでアクセス 👉 http://localhost:8080
⭐️Welcome to nginx!ページが表示されれば成功!

方法② Dockerfileで構築🌟
一度作ったら何度でも再利用できるイメージで構築しよう!
🔹 1. Dockerfileの作成
プロジェクトディレクトリに以下の内容で Dockerfile を作ります👇
# Ubuntuベース
FROM ubuntu:22.04
# nginxをインストールし、不要なキャッシュを削除
RUN apt-get update \
&& apt-get install -y nginx \
&& rm -rf /var/lib/apt/lists/*
# コンテナが即終了しないようにフォアグラウンドでnginxを実行
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
🔹 2. ビルド(Dockerfileをもとにイメージを作成)
docker build -t my-nginx .
-
-t my-nginx:ビルドするイメージの名前 -
.:Dockerfile があるカレントディレクトリ
🔹 3. 起動
docker run -d -p 8080:80 --name webserver my-nginx
-
-d: はバックグラウンド起動 -
-p:ホストとコンテナのポート接続
✅ 結果の確認(方法1と同じ結果)
ブラウザでアクセス 👉 http://localhost:8080
方法①と同じく Welcome to nginx! が表示されればOKです✨
📝 最後に
今回は、Dockerを使ったWebサーバーの立ち上げ方を解説しました!
実際に手を動かして構築してみると、Docker × nginx による Webサーバー構築の理解が深まってくると思います🏃♀️
参考記事
Discussion