はじめに: Dockerとは

Dockerは、コンテナ型の仮想化技術を提供するオープンソースのプラットフォームです。コンテナとは、アプリケーションとその依存関係を一緒にパッケージ化する方法で、アプリケーションがどの環境でも一貫して動作することを保証します。

Dockerの主な利点は以下の通りです:

  1. ポータビリティ: Dockerコンテナは、開発環境から本番環境まで、異なる環境で一貫して動作します。
  2. 軽量性: Dockerコンテナは、仮想マシンよりも少ないリソースを消費し、起動が速く、パフォーマンスも高いです。
  3. モジュラー性とスケーラビリティ: Dockerを使用すると、アプリケーションをマイクロサービスとして設計し、個々のサービスを個別のコンテナで実行できます。これにより、各サービスを独立してスケールアップまたはスケールダウンできます。

Dockerは、開発者がアプリケーションを迅速に開発し、信頼性の高い方法でデプロイするのに役立ちます。次のセクションでは、PHPとMySQLのDockerイメージの選択について説明します。。

PHPとMySQLのDockerイメージの選択

Dockerを使用すると、さまざまなプログラミング言語やデータベースシステムのイメージを簡単に取得できます。今回はPHPとMySQLの開発環境を構築するため、それぞれの公式イメージを使用します。

PHPのDockerイメージ

PHPの公式Dockerイメージは、さまざまなバージョンのPHPを提供しています。また、ApacheやNginxなどのウェブサーバーがプリインストールされたイメージも提供されています。今回は、ウェブサーバーとしてApacheを使用するため、php:7.4-apacheというイメージを使用します。

MySQLのDockerイメージ

MySQLの公式Dockerイメージも、さまざまなバージョンのMySQLを提供しています。今回は、mysql:5.7というイメージを使用します。

これらのイメージを使用することで、PHPとMySQLの開発環境を簡単に構築することができます。次のセクションでは、これらのイメージを使用してDockerfileを作成する方法について説明します。。

Dockerfileの作成: PHPとMySQL

Dockerfileは、Dockerイメージを作成するためのテキストドキュメントです。このファイルには、コンテナ内で実行される一連のコマンドが記述されています。今回は、PHPとMySQLのDockerイメージを作成するためのDockerfileを作成します。

PHPのDockerfile

まず、PHPのDockerfileを作成します。以下にその例を示します。

# PHPの公式イメージをベースにする
FROM php:7.4-apache

# 必要なパッケージをインストールする
RUN apt-get update && apt-get install -y \
    zlib1g-dev \
    libzip-dev \
    libicu-dev \
    g++ \
    && docker-php-ext-install zip intl

# Composerをインストールする
COPY --from=composer /usr/bin/composer /usr/bin/composer

# Apacheの設定をする
RUN a2enmod rewrite headers

このDockerfileでは、まずphp:7.4-apacheイメージをベースに使用します。次に、必要なパッケージをインストールし、PHPの拡張機能をインストールします。最後に、Composerをインストールし、Apacheの設定を行います。

MySQLのDockerfile

次に、MySQLのDockerfileを作成します。しかし、MySQLの場合は公式イメージをそのまま使用することが一般的です。そのため、特別な設定が必要ない限り、MySQLのDockerfileを作成する必要はありません。

以上が、PHPとMySQLのDockerfileの作成方法です。次のセクションでは、これらのDockerfileを使用してdocker-compose.ymlを設定する方法について説明します。。

docker-compose.ymlの設定

docker-compose.ymlは、複数のDockerコンテナを一緒に管理するためのツール、Docker Composeの設定ファイルです。このファイルには、各コンテナの設定や、コンテナ間のネットワーク接続などが記述されます。

以下に、PHPとMySQLの開発環境を構築するためのdocker-compose.ymlの例を示します。

version: '3'
services:
  web:
    build:
      context: ./php
      dockerfile: Dockerfile
    volumes:
      - ./php:/var/www/html
    ports:
      - "8000:80"
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mydb
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

この設定では、webdbの2つのサービス(コンテナ)が定義されています。

  • webサービスは、先ほど作成したPHPのDockerfileを使用してビルドされます。また、ホストの./phpディレクトリをコンテナの/var/www/htmlディレクトリにマウントし、ポート8000をコンテナのポート80にマッピングします。
  • dbサービスは、公式のmysql:5.7イメージを使用します。環境変数を設定してMySQLの設定を行い、名前付きボリュームdb_dataを使用してデータを永続化します。

以上が、PHPとMySQLの開発環境を構築するためのdocker-compose.ymlの設定方法です。次のセクションでは、このdocker-compose.ymlを使用してDockerコンテナをビルドと起動する方法について説明します。。

Dockerコンテナのビルドと起動

Docker Composeを使用して、先ほど作成したdocker-compose.ymlに基づいてDockerコンテナをビルドと起動します。以下にその手順を示します。

Dockerコンテナのビルド

まず、以下のコマンドを実行してDockerコンテナをビルドします。

docker-compose build

このコマンドは、docker-compose.ymlに記述されたサービス(この場合はwebdb)のDockerイメージをビルドします。ビルドが完了すると、DockerイメージはローカルのDockerイメージリポジトリに保存されます。

Dockerコンテナの起動

次に、以下のコマンドを実行してDockerコンテナを起動します。

docker-compose up -d

このコマンドは、docker-compose.ymlに記述されたサービスを起動します。-dオプションは、コンテナをバックグラウンドで実行することを意味します。

以上が、Dockerコンテナのビルドと起動の手順です。これにより、PHPとMySQLの開発環境がDocker上で稼働し、開発を始めることができます。次のセクションでは、PHPとMySQLの接続テストについて説明します。。

PHPとMySQLの接続テスト

Dockerコンテナが正しく起動した後、PHPからMySQLに接続できるかをテストすることが重要です。以下に、PHPからMySQLに接続するための簡単なスクリプトを示します。

<?php
$servername = "db";
$username = "user";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

このスクリプトは、MySQLサーバー(dbコンテナ)に接続し、接続が成功した場合はConnected successfullyと表示します。接続に失敗した場合は、エラーメッセージが表示されます。

このスクリプトをindex.phpとして保存し、ブラウザからlocalhost:8000にアクセスすると、結果を確認できます。

以上が、PHPとMySQLの接続テストの方法です。これにより、PHPとMySQLの開発環境が正しく構築され、動作していることを確認できます。次のセクションでは、この記事のまとめと次に学ぶべきステップについて説明します。。

まとめと次のステップ

この記事では、Dockerを使用してPHPとMySQLの開発環境を構築する方法について説明しました。具体的には、以下のステップを実行しました。

  1. Dockerとは何かを理解しました。
  2. PHPとMySQLのDockerイメージを選択しました。
  3. Dockerfileを作成しました。
  4. docker-compose.ymlを設定しました。
  5. Dockerコンテナをビルドと起動しました。
  6. PHPとMySQLの接続をテストしました。

これにより、PHPとMySQLの開発環境がDocker上で稼働し、開発を始めることができます。

次のステップとしては、この開発環境を使用して実際のアプリケーションの開発を始めることが考えられます。また、他のサービス(例えば、RedisやElasticsearchなど)を同じようにDockerコンテナとして追加することも可能です。

さらに、Dockerのベストプラクティスを学び、開発環境を最適化することも重要です。例えば、Dockerイメージのサイズを小さくするための方法や、Dockerコンテナのセキュリティを強化するための方法などがあります。

以上が、Dockerを使用したPHPとMySQLの開発環境構築のまとめと次のステップです。この知識を活用して、効率的な開発環境を構築し、素晴らしいアプリケーションを作成してください。.

カテゴリー: 未分類

0件のコメント

コメントを残す

アバタープレースホルダー

メールアドレスが公開されることはありません。 が付いている欄は必須項目です