クラウド コンピューティングとコンテナ化テクノロジの急速な発展に伴い、効率と利便性を向上させるためにアプリケーションを Docker 化する開発者が増えています。今日は、人気のある開発言語 PHP とデータベースを Docker 化して、より効率的で移植性の高い開発プロセスを実現する方法を検討します。
1. Docker とは
まず、Docker について簡単に紹介します。 Docker は、アプリケーションとサービスをコンテナーにパッケージ化して、さまざまな環境で実行できるコンテナー化テクノロジーです。従来の仮想マシンとは異なり、Docker はコンテナをより迅速に起動および停止でき、より軽量な環境とより効率的なリソース管理を提供します。
Docker を使用すると、アプリケーションの移植性と再現性が高まります。アプリケーションの実行環境と依存関係をコンテナにパッケージ化し、さまざまな環境で簡単にデプロイして実行できるためです。
2. PHP とデータベースを Docker 化する理由
PHP 開発者にとって、Dockerization のメリットは明白です。まず、PHP アプリケーションは多くのライブラリや拡張機能に依存することが多く、それらを Docker コンテナにパッケージ化することで、これらの依存関係のインストールで発生する可能性のある複雑さと競合を回避できます。
第 2 に、異なる PHP アプリケーションは異なるデータベースに接続する必要がある場合があるため、データベースとアプリケーションを同じコンテナーにパッケージ化すると、コンテナーが重くなるだけでなく、柔軟性も低下します。別々のコンテナにパッケージ化すると、よりモジュール化され、再利用可能になります。
3. PHP とデータベースを Docker する方法
次に、PHP アプリケーションとデータベースを Docker する方法と、それらの間の統合について紹介します。
PHP アプリケーションを Docker 化するには、まず Dockerfile を作成する必要があります。 Dockerfile は、Docker イメージの内容を定義するテキスト ファイルで、イメージの作成に必要な命令とコマンドが含まれています。
以下は基本的な Dockerfile の例です:
FROM php:7.4-apache COPY src/ /var/www/html/
この Dockerfile は Apache ベースの PHP 7.4 イメージを使用し、アプリケーション コードをコンテナーの /var/www/html / ディレクトリにコピーします。
このイメージをビルドするには、Dockerfile が配置されているディレクトリで次のコマンドを実行してください:
docker build -t my-php-app .
すべてがうまくいけば、ビルド プロセスの出力が表示され、最後にビルドします。 my-php-appのMirrorという名前のファイル。
次に、データベースを Docker 化する必要があります。ここでは例として、人気のあるリレーショナル データベースである MySQL を使用します。
MySQL Docker イメージを使用するには、次のコマンドを実行する必要があります:
docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.7
このコマンドは、mysql:5.7 イメージをダウンロードし、my-mysql という名前のコンテナで MySQL を起動します。また、 -e オプションを使用して、環境変数 MYSQL_ROOT_PASSWORD を my-secret-pw に設定します。これは、MySQL の root ユーザーのパスワードとして使用されます。
次に、MySQL データベースに接続できるように PHP アプリケーション コードを記述する必要があります。
以下は、PHP PDO 拡張機能を使用して MySQL に接続するサンプル コードです:
$pdo = new PDO('mysql:host=my-mysql;dbname=my-db', 'root', 'my-secret-pw');
ここでは、PDO オブジェクトを使用して、my-mysql コンテナ内の MySQL インスタンスに接続します。前に走っています。 my-mysql は、MySQL コンテナの実際の IP アドレスまたはホスト名に置き換えることができます。my-db は、接続するデータベースの名前です。
すべてが正しく設定されている場合、アプリケーションは MySQL データベースに接続し、PDO を使用してクエリなどの操作を実行できます。
4. 概要
PHP とデータベースを Docker 化することで、より効率的で移植可能な開発プロセスを実現できます。 Docker コンテナを使用すると、アプリケーションとその依存関係の管理が容易になり、アプリケーションとデータベースがより再利用可能でモジュール化されます。これらを異なるコンテナにパッケージ化することで、それらの間の関係をより柔軟に管理し、より効率的な導入と運用を実現できます。
以上がPHP とデータベースの統合 Dockerizationの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。