開発運用

DockerでNginxを実行する方法

NginxをDockerコンテナでUbuntuにセットアップして実行する方法について、包括的かつ詳細なガイドを以下に記載します。このガイドは、初心者から中級者向けに、Dockerの基本的な使用方法を理解している前提で進めます。

1. 前提条件

まず、Ubuntuシステムに以下のツールがインストールされていることを確認してください。

  • Docker: Dockerは、アプリケーションのコンテナ化をサポートするプラットフォームです。
  • Nginx: 高速で軽量なウェブサーバーであり、リバースプロキシとしても広く使用されます。

Dockerのインストール方法

UbuntuにDockerをインストールするには、以下の手順を実行します。

bash
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list' sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io

インストールが完了したら、Dockerのバージョンを確認して、インストールが成功したことを確認できます。

bash
docker --version

Docker Composeのインストール(オプション)

複数のコンテナを管理するためにDocker Composeを使用することもあります。Docker Composeのインストールは以下のコマンドで行えます。

bash
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

インストール後、docker-composeコマンドのバージョンを確認します。

bash
docker-compose --version

2. DockerでNginxコンテナを実行する

Dockerを使ってNginxをコンテナ内で実行する方法を説明します。まず、Nginxの公式Dockerイメージを利用して、Nginxをコンテナとして実行します。

2.1. Nginxコンテナの実行

以下のコマンドを実行して、NginxをDockerコンテナ内で実行します。

bash
sudo docker run --name nginx-container -p 80:80 -d nginx
  • --name nginx-container: コンテナの名前を指定します。
  • -p 80:80: ホストのポート80をコンテナのポート80にマッピングします。
  • -d: バックグラウンドでコンテナを実行します。
  • nginx: 使用するDockerイメージ名です。

実行後、ブラウザでhttp://localhostにアクセスすると、Nginxのデフォルトページが表示されるはずです。

2.2. コンテナの状態確認

コンテナが正常に実行されているか確認するために、以下のコマンドを使用します。

bash
sudo docker ps

実行中のコンテナの一覧が表示され、nginx-containerという名前のコンテナがリストに表示されるはずです。

3. Nginxの設定を変更する

コンテナ内で動作しているNginxの設定を変更するには、設定ファイルを編集する必要があります。これを実現するために、ボリュームを使用してホストマシンとコンテナ間で設定ファイルを共有します。

3.1. 設定ファイルのマウント

次のコマンドを使って、ホスト上のNginx設定ファイルをコンテナ内にマウントします。

bash
sudo docker run --name nginx-container -p 80:80 -v /path/to/nginx.conf:/etc/nginx/nginx.conf -d nginx
  • /path/to/nginx.conf: あなたのホストマシン上のNginx設定ファイルのパスです。
  • /etc/nginx/nginx.conf: コンテナ内で使用されるNginx設定ファイルのパスです。

これにより、ホストマシンのNginx設定ファイルがコンテナ内で使用されるようになります。

3.2. Nginx設定の確認と再起動

設定ファイルを変更した後、Nginxを再起動する必要があります。以下のコマンドで再起動します。

bash
sudo docker exec nginx-container nginx -s reload

これで、設定変更が反映されます。

4. Docker Composeを使用してNginxを管理する

複数のサービスをまとめて管理するために、Docker Composeを使用することができます。例えば、Nginxと他のサービス(例えば、PHP-FPMなど)を同時に管理したい場合です。

4.1. docker-compose.ymlの作成

以下のようなdocker-compose.ymlファイルを作成します。このファイルには、NginxサービスとPHP-FPMサービスが含まれます。

yaml
version: '3' services: nginx: image: nginx container_name: nginx-container ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./html:/usr/share/nginx/html depends_on: - php php: image: php:7.4-fpm container_name: php-container volumes: - ./html:/var/www/html
  • nginx.conf: Nginxの設定ファイルです。
  • ./html: HTMLコンテンツやPHPファイルを格納するディレクトリです。
  • depends_on: PHP-FPMサービスがNginxサービスより先に起動するように指定します。

4.2. Docker Composeでサービスを起動

以下のコマンドを実行して、Docker Composeでサービスを起動します。

bash
docker-compose up -d

これにより、NginxとPHP-FPMが同時に起動し、設定が反映されます。

4.3. コンテナのログ確認

コンテナのログを確認するには、以下のコマンドを使用します。

bash
docker-compose logs nginx

これにより、Nginxコンテナのログを確認することができます。

5. コンテナの管理

5.1. コンテナの停止と削除

コンテナを停止するには、以下のコマンドを使用します。

bash
sudo docker stop nginx-container

コンテナを削除するには、次のコマンドを使用します。

bash
sudo docker rm nginx-container

5.2. Docker Composeでの停止

Docker Composeを使用している場合、全サービスを停止するには以下のコマンドを実行します。

bash
docker-compose down

これにより、Composeで定義されたすべてのコンテナが停止し、削除されます。

6. まとめ

Ubuntu上でDockerを使用してNginxを実行する手順を紹介しました。基本的なNginxのセットアップから、設定ファイルの変更、さらにDocker Composeを使った複数サービスの管理まで、幅広い手法を紹介しました。これにより、より効率的にNginxを活用した環境を構築できるようになるでしょう。

Back to top button