PHP で Docker コンテナを使用するためのベスト プラクティス
クラウド コンピューティングが徐々に主流になるにつれて、軽量の仮想化ソリューションとしての Docker が開発者の間でますます好まれています。 PHP 開発者は、Docker コンテナーを使用してアプリケーションを構築および実行すると、開発効率とデプロイメントの信頼性を大幅に向上させることができます。この記事では、Docker の基本知識、Dockerfile の作成と使用、Docker Compose の使用、Docker コンテナの運用とメンテナンスの一般的な問題など、PHP で Docker コンテナを使用するためのベスト プラクティスを紹介します。
1. Docker の基礎知識
Docker は、Linux、Windows、MacOS などのさまざまなオペレーティング システム上で実行できるオープン ソースの仮想化プラットフォームです。 Docker コンテナは、アプリケーション、依存関係、および実行時に必要なその他のファイルを含めることができるスナップショットのようなファイルである Docker イメージから作成されます。 Docker コンテナを実行すると、Docker イメージに基づいて分離環境が作成され、アプリケーションが独立したコンテナで実行できるようになります。 Docker コンテナは、Docker Hub または自分で作成したプライベート リポジトリを通じて共有および保存できるため、開発者はコンテナ化されたアプリケーションを迅速に構築してデプロイできます。
2. Dockerfile の作成と使用
Dockerfile は、Docker イメージの構築方法を記述したテキスト ファイルです。 Dockerfile には、どの基本イメージからビルドを開始するか、ソフトウェアと依存関係をインストールするか、ファイルをコピーするか、環境変数を構成するかを指定する一連の指示が含まれています。以下は簡単な Dockerfile の例です。
FROM php:7.4-fpm-alpine RUN apk add --no-cache git zip unzip WORKDIR /var/www/html COPY . . RUN composer install --no-dev --no-scripts --no-progress --prefer-dist --optimize-autoloader CMD ["php-fpm"]
この Dockerfile は php:7.4-fpm-alpine をベース イメージとして使用し、git、zip、unzip などの依存関係をインストールし、現在のディレクトリ内のすべてのファイルを次の場所にコピーします。コンテナ内の /var/www/html ディレクトリ。最後に、Composer を使用して依存関係をインストールし、php-fpm モードでコンテナーを実行するように指定します。
Docker イメージのビルドは、docker build コマンドを通じて実行できます:
docker build -t my-app .
このコマンドは、現在のディレクトリで Dockerfile という名前のファイルを検索し、. (ドット)
を使用します。ビルドが配置されているディレクトリを示し、ビルドされたイメージに my-app という名前を付けます。
3. Docker Compose の使用
Docker Compose は、複数の Docker コンテナを管理するためのツールであり、複数のコンテナ間の相互作用と依存関係は、Compose ファイルを通じて定義できます。以下は、単純な docker-compose.yml ファイルの例です。
version: '3' services: app: build: . ports: - "8000:80" environment: - MYSQL_HOST=db - MYSQL_PORT=3306 - MYSQL_DATABASE=my_database - MYSQL_USER=my_user - MYSQL_PASSWORD=my_password depends_on: - db db: image: mysql:5.7 environment: - MYSQL_DATABASE=my_database - MYSQL_USER=my_user - MYSQL_PASSWORD=my_password - MYSQL_ROOT_PASSWORD=secret
この docker-compose.yml ファイルでは、app と db という 2 つのサービスが定義されています。このうち、アプリ サービスは現在のディレクトリの Dockerfile を使用してイメージを構築し、コンテナーのポート 80 をローカル ホストのポート 8000 にマップします。同時に、コンテナの環境変数にデータベース接続情報を定義し、サービスが db サービスに依存する必要があるという依存関係を指定します。 db サービスは公式の mysql:5.7 イメージを使用し、データベースの root パスワード、ユーザー名、パスワード、その他の情報を環境変数で定義します。
docker-compose コマンドを使用して、複数の Docker コンテナを起動および管理します。
docker-compose up
このコマンドは、現在のディレクトリの docker-compose.yml ファイルで定義されたサービスを検索し、Create サービスを作成します。対応する Docker コンテナを起動します。
4. Docker コンテナの運用および保守に関する一般的な問題
ローカル開発から実稼働環境へのデプロイに至るまで、さまざまな運用および保守の問題が頻繁に発生します。以下に、Docker コンテナーの運用および保守に関する一般的な問題と解決策を示します。
コンテナーが外部ネットワークに接続できない場合は、解決方法:
Dockerfile の指示が正しいかどうか、インストールできない依存関係がないかどうかを確認してください。
以上がPHP で Docker コンテナを使用するためのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。