9cubed
ブログ | Tailwind | Vite | Python | Node.js | Linux | PowerShell | その他 | 将棋ウォーズ | 歌の練習
< 前の記事

Docker のインストール

次の記事 >

Docker で Nginx と PHP の連携

Linux Docker

[Linux]Docker で Nginx のコンテナの使用

公開日:2025-11-30
更新日:2025-11-30

1. 概要

Docker で Nginx のコンテナを使用します。

2. ネットワークの作成

コンテナ間で通信ができるようにネットワークを作成します。
Nginx を単独で実行する場合は不要です。
Nginx と php-fpm のコンテナを連携する際に必要となります。
コマンド
docker network create {ネットワーク名}
docker network create my-app-network

ネットワークに関する他のコマンド
コマンド
docker network ls                  # ネットワーク一覧の表示
docker network rm  my-app-network  # ネットワークの削除

3. Nginx の conf とテスト HTML の作成

3.1 ディレクトリの作成

Nginx 用の conf と html のディレクトリを Docker のホスト側に作成します。
Nginx のコンテナ起動時に、
このディレクトリをコンテナの中の conf.d と html にマウントして、Docker のホスト側からファイルの編集が行えるようにします。
コマンド
mkdir -p ~/docker_test/nginx/conf
mkdir -p ~/docker_test/nginx/html
「-p」を付けると、パスにある全てのディレクトリを作成してくれます。

3.2 app.conf の作成

Nginx の conf の追加分です。

~/docker_test/nginx/conf/app.conf
コード
    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;
    }

3.3 test.html の作成

次のコマンドを実行してください。
コマンド
echo 'test' > ~/docker_test/nginx/html/test.html

4. Nginx のコンテナの起動

コマンド
docker run \
  --name nginx-test \
  --network my-app-network \
  -d \
  -p 80:80 \
  -p 443:443 \
  -v ~/docker_test/nginx/conf:/etc/nginx/conf.d \
  -v ~/docker_test/nginx/html:/usr/share/nginx/html \
  nginx:1.29.3
実行するコンテナのイメージ(今回は nginx:1.29.3)がローカルにない場合は、自動的に pull されます。
nginx の他のバージョンは、Docker 公式イメージで確認できます。
ちなみに、Nginx の公式イメージに nginx:1.29 がありますが、nginx:1.29.0 と言う意味ではなく、nginx:1.29 の中の最新バージョンとなり、
pull するタイミングによってバージョンが新しくなる可能性があるため注意が必要です。また、このルールはイメージ毎に異なります。

--name は、コンテナの名前です。Docker のネットワークの中では、ホスト名のように使えます。

--network は、コンテナが接続するネットワークです。

-d は、コンテナをバックグラウンドで実行するオプションです。
コンテナを起動した後も、そのままターミナルで操作が可能になります。

-p は、ポートマッピングの設定です。Docker のホストに送信された内容をコンテナの指定されたポートに転送するイメージです。

-v は、Docker のホストのディレクトリを、コンテナのディレクトリにマウントします。
指定されたコンテナのディレクトリを参照すると、ホストのディレクトリが見えるようになります。
これにより、設定ファイルなどを Docker のホスト側に置くことができます。

4. 動作確認

http://localhost:8080/test.html にアクセスして「test」と表示されれば OK です。

5. エラー時の確認方法

Nginx のログを確認します。
コマンド
docker logs nginx-test
アクセスしてもログが増えない場合は、Nginx のコンテナまでリクエストが届いていません。
404 の場合は、アクセスした URL が間違っているか、
Nginx の conf の root のパスと、docker run の -v で指定したパスが一致していない可能性があります。
docker run の -v の指定をはずしてコンテナを再作成して、http://localhost:8080/ にアクセスできるかどうかも確認してください。

Nginx のコンテナが起動後にすぐに停止する場合もあるため、コンテナが起動しているか確認します。
コマンド
docker ps

Nginx のコンテナに bash で接続して、正しくマウントされているかを確認します。
コマンド
docker exec -it nginx-test bash
コンテナ内の /usr/share/nginx/html で test.html が見えていれば OK です。

< 前の記事

Docker のインストール

次の記事 >

Docker で Nginx と PHP の連携

YouTube X

新着一覧

  • SCSS のインストールVite
  • Tailwind CSS のプロジェクトの作成Tailwind
  • TypeScriptのプロジェクトの作成Vite
  • Flask のインストールと動作確認Python
  • 簡易Webサーバーの作成Python
  • pipeline で文章の生成Python
  • pipeline で文章の要約Python
  • 音声から文字起こしPython
  • Node.js のインストールNode.js
  • .ps1(PowerShellスクリプト)を実行可能にするPowerShell

アーカイブ

  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲