ホームページ >バックエンド開発 >PHPチュートリアル >Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのコンテナー スケーリング

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのコンテナー スケーリング

WBOY
WBOYオリジナル
2023-10-12 11:06:12906ブラウズ

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器扩展

タイトル: Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのコンテナ拡張機能の実装

コンテナ テクノロジの発展に伴い、ますます多くの開発者が Docker を使用し始めています。アプリケーション環境を構築および管理します。この記事では、PHP アプリケーションを例として、Docker Compose、Nginx、MariaDB を使用してコンテナー化された環境を拡張する方法を説明します。

Docker Compose は、複数のコンテナの組み合わせを定義および管理するために Docker によって公式に提供されているツールです。 Nginx は高性能 HTTP サーバーおよびリバース プロキシ サーバーであり、MariaDB はオープンソースのリレーショナル データベース管理システムです。

まず、必要なコンテナを定義および構成するために、docker-compose.yml というファイルを作成する必要があります。このファイルでは、web、db、phpmyadmin の 3 つのサービスを使用します。

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./app:/var/www/html
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - php
    networks:
      - app-network
  
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=app_database
      - MYSQL_USER=app_user
      - MYSQL_PASSWORD=password
    volumes:
      - ./data:/var/lib/mysql
    networks:
      - app-network
  
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    links:
      - db:db
    ports:
      - "8080:80"
    environment:
      - PMA_HOST=db
      - MYSQL_ROOT_PASSWORD=password
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

このファイルでは、3 つのサービスを定義します。 Web サービスは Nginx ミラーリングを使用し、ホストのポート 80 をコンテナーのポート 80 にマップします。ボリュームでは、ホスト上の ./app ディレクトリをコンテナの /var/www/html ディレクトリにマッピングし (ホスト上のアプリケーション コードは ./app ディレクトリに配置されます)、ボリューム上の ./config/nginx ディレクトリをマッピングすることを指定します。 host コンテナの /etc/nginx/conf.d ディレクトリにマップします (Nginx の構成に使用されます)。 depend_on は、Web サービスが php サービスの起動に依存することを指定します。 network は、これら 3 つのサービスを同じネットワークに接続するために、app-network というネットワークを定義します。

db サービスは MariaDB ミラーを使用し、環境を通じて root パスワード、データベース名、ユーザーとパスワードなどのいくつかの環境変数を指定します。ボリュームは、ホスト上の ./data ディレクトリをコンテナの /var/lib/mysql ディレクトリにマップします (データの永続性のため)。

phpmyadmin サービスは phpmyadmin イメージを使用し、リンクを介して db サービスへの接続を指定し、ポートを介してホストのポート 8080 とコンテナのポート 80 のマッピングを指定します。環境では、データベース ホストや root パスワードなどのいくつかの環境変数を指定します。

次に、ホスト上に対応するディレクトリとファイルを作成する必要があります。ターミナルで次のコマンドを実行します。

mkdir app
mkdir config/nginx
mkdir data

次に、アプリケーション コードを app ディレクトリに配置し、default.conf という名前の Nginx 構成ファイルを作成して config/nginx ディレクトリに配置します。この構成ファイルは、コンテナーの /etc/nginx/conf.d ディレクトリにマップされます。

これで、コンテナを起動できます。ターミナルで次のコマンドを実行します。

docker-compose up -d

このコマンドは、すべてのコンテナを作成して起動し、バックグラウンドで実行します。 docker ps コマンドを使用すると、実行中のすべてのコンテナーを表示できます。

最後に、ブラウザから http://localhost にアクセスすると、コンテナ内の PHP アプリケーションの実行結果が表示されます。 http://localhost:8080 で phpMyAdmin にアクセスして MariaDB データベースを管理することもできます。

現時点で、Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのコンテナ拡張機能の実装に成功しました。 Docker Compose を使用すると、複数のコンテナを簡単に定義して管理でき、Nginx と MariaDB は効率的で信頼性の高いサービスを提供します。

この記事が役に立ち、Docker テクノロジーをより深く理解し、適用できるようになることを願っています。楽しいプログラミングを!

以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションのコンテナー スケーリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。