# Nginxしたい(``nginx``) ```yaml services: nginx: image: nginx container_name: my-nginx ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html ``` ```console // コンテナーを起動 $ docker compose up -d // ブラウザーでアクセス $ open http://localhost:8080 // コンテナーを終了 $ docker compose down ``` [nginx](https://hub.docker.com/_/nginx)は高速で軽量なウェブサーバーのDockerイメージです。 Docker Composeを使って簡単にNginxを起動・停止できます。 起動後、ブラウザで `http://localhost:8080` を開いて「Welcome to nginx!」と表示されればOKです。 ローカルの `./html` ディレクトリがNginxのドキュメントルート(`/usr/share/nginx/html`)にマウントされているため、 このディレクトリにHTMLファイルを配置すればウェブサーバーで公開できます。 ## パッケージをインストールしたい(``apt-get``) コンテナー内に便利なコマンドツールを追加できます。 ```console $ docker compose exec nginx bash (my-nginx) $ apt-get update (my-nginx) $ apt-get install -y vim curl ``` 公式イメージには最小限のコマンドしか含まれていないため、必要に応じて `apt-get` でツールを追加します。 ここでは `vim` と `curl` をインストールしています。 ## HTMLファイルを公開したい ローカルマシンの `./html` ディレクトリにHTMLファイルを配置します。 ```console $ mkdir -p html $ cat > html/index.html << 'EOF' My Website

Welcome to my website!

EOF ``` `docker compose up -d` でコンテナーを起動すると、`http://localhost:8080` でこのHTMLファイルが表示されます。 ## ログを確認したい Nginxのアクセスログやエラーログを確認できます。 ```console $ docker compose exec nginx bash (my-nginx) $ tail -f /var/log/nginx/access.log ``` ログファイルはコンテナー内の `/var/log/nginx/` に保存されています。 `-f` オプションで、ログをリアルタイム表示できます。 終了するには `Ctrl+C` を押してください。 ## バージョン | バージョン | リリース日 | サポート終了 | 備考 | |----------|-----------|----------|------| | 1.29(mainline) | 2025年6月24日 | サポート中 | 最新開発版 | | 1.28(stable) | 2025年4月23日 | サポート中 | 推奨安定版 | | 1.27 | 2024年5月28日 | 2025年6月24日 | サポート終了予定 | | 1.26 | 2024年4月23日 | 2025年4月23日 | サポート終了 | ### バージョニング体系 nginxは「mainline」(開発版)と「stable」(安定版)の2つのブランチを維持しています。 - **mainline**(奇数番号):最新機能やバグ修正が含まれます。新しい機能が必要な場合に使用します。 - **stable**(偶数番号):重大なバグ修正のみが提供されます。本番環境での使用に推奨されます。 毎年4月に現在の安定版のサポートが終了し、次の安定版がリリースされます。 Docker Imageの `nginx` タグは、最新の安定版を自動的にプルします。 特定のバージョンを使いたい場合は `nginx:1.28` のようにバージョンを指定できます。 ## リファレンス - [nginx - DockerHub](https://hub.docker.com/_/nginx) - [NGINX Documentation](https://docs.nginx.com/) - [nginx - endoflife.date](https://endoflife.date/nginx)