目次

    Dockerとは

    Docker(ドッカー)とは軽量なコンテナ型仮想化プラットフォームです。Dockerを利用することで、OS内部に独立したアプリケーションの実行環境(コンテナ)を生成することが出来、いつでもその環境を立ち上げることが可能になります。

    Dockerを使わない旧来型の環境構築の場合、ドキュメントを参考に必要なツールをインストールするというやり方になりますが、同じ環境を何度も構築するという点で相当大変です。

    しかし、Dockerを利用した場合、Dockerfileに環境構築に必要なコードを記述し、コマンドを実行することで素早く同じ環境を作ることが出来ます。複数人開発で同じ開発環境を一瞬に揃えることが出来るため、Dockerは開発環境として利用するのはもちろんのこと、AWS等のクラウド上にデプロイして本番環境として利用することも一般的となっています。

    今回はそんなDockerを利用して、PHPの環境を構築する手順を解説します。


    Dockerによる環境構築

    1.  Dockerのインストール

    まずはDockerをインストールします。下記よりインストーラをダウンロードし、インストールしてください。

    Macの場合はCPUIntel製かApple製かでインストーラが変わるので、ご注意ください。

    Docker_Desktop

    インストールが完了したら、Macの方はターミナル、Windowsの方はコマンドプロンプトにて下記コマンドを実行してください。Dockerのバージョンが出力されたらインストール完了です。


    $ docker -v


    2.  ディレクトリ・ファイルの準備

    Dockerを起動する場所を作成します。
    まずはフォルダを1つ用意し、次のようなファイル構造となるよう準備します。
    用意するフォルダは何でも良いのですが、今回は「docker-php」という名前で作成します。


    docker-php

    ├── docker-compose.yml //ファイル

    ├── html //フォルダ

    └── index.php //ファイル

    ├── mysql //フォルダ

    └── php //フォルダ

    ├── Dockerfile //ファイル

    └── php.ini //ファイル


    3.  Dockerfileの作成

    ファイルの中身を作成していきます。

    まずは、Dockerfileに以下のように記述してください。


    FROM php:7.4-apache

    RUN apt-get update && apt-get install -y libonig-dev && \

    docker-php-ext-install pdo_mysql mysqli mbstring


    4.  docker-compose.ymlの作成

    docker-compose.ymlファイルに下記の設定を記載していきます。MySQL用・phpMyAdmin用・PHPをそれぞれ動かすコンテナを作成する設定となっています。


    version: '3'
    services:

    #MySQL用コンテナ
    mysql:
    container_name: mysql
    image: mysql:5.7
    volumes:
    - ./mysql:/var/lib/mysq
    ports:
    - 3306:3306
    environment:
    - MYSQL_ROOT_PASSWORD=root
    - MYSQL_DATABASE=test
    - MYSQL_USER=test
    - MYSQL_PASSWORD=test

    #phpMyAdmin用コンテナ
    phpmyadmin:
    container_name: phpMyAdmin
    depends_on:
    - mysql
    image: phpmyadmin/phpmyadmin
    environment:
    PMA_HOST: mysql
    restart: always
    ports:
    - "80:80"

    #php用コンテナ
    php:
    container_name: php-apache
    build: ./php
    volumes:
    - ./html:/var/www/html
    ports:
    - 8080:80
    depends_on:
    - mysql


    5.  index.phpの作成

    最後にphpの動作確認用として、index.phpに以下を記載します。


    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="UTF-8">
    <title>動作確認</title>
    </head>
    <body>
    <h1><?phpprint ("Docker test");?></h1>
    </body>
    </html>


    6.  コンテナの起動

    ターミナルを開き、docker−pfpフォルダに 移動します。


    $ cd docker-php

    下記コマンドで、コンテナを立ち上げます。


    $ docker-compose up -d

     下記コマンドで現在立ち上がっているコマンドの状態を確認することができます。


    $ docker ps


    7.  動作確認

    最後にサイトにアクセスします。

    画面に「Docker test」と表示されたら成功です。

    http://localhost:8080


    まとめ

    いかがだったでしょうか。dockerは環境構築のしやすさ、環境の削除、複製といった面で非常にメリットがあり、今後エンジニアにとっては必須のスキルになっていくと思われます。開発においても積極的に取り入れ、もっともっと知識を深めていきたいですね!

    PREV
    2022.03.10
    UIとUXとは?
    NEXT
    2022.03.10
    4週間で全世界向け越境ECサイトを作った話