docker-composeを利用した環境構築(Docker Toolbox向け)

1. 仮想環境用のフォルダを作成

エクスプローラでユーザーディレクトリにアクセスし、「MyDocker」という名前でディレクトリを作成します。 ( もしくはVSCodeのターミナルから

cd ~
mkdir MyDocker

と実行します。)

2. VSCodeを利用して作成したMyDockerディレクトリを開く

VSCodeの新しいウィンドウを立ち上げ、スタートメニューの「フォルダを開く」から作成したMyDockerディレクトリを開きます。

3. MyDockerディレクトリ内にlamp_sampleその中にlamp_dockディレクトリを作成する

VS Codeの左サイドバーに表示されているMyDockerディレクトリに、フォルダ作成ボタンを利用して「lamp_sample」という名前のディレクトリを作成します。さらに、そのlamp_sampleディレクトリの中に「lamp_dock」というディレクトリを作成しましょう。

4. lamp_dockディレクトリにdocker-compose.ymlを作成する

cd ~/MyDocker/lamp_sample
pwd

の順でコマンドを実行し、表示されたパスをメモしておきます。

大抵の場合

/c/Users/[ユーザー名]/MyDocker/lamp_sample

のようなパスになるでしょう。

作成したlamp_dockディレクトリの中に新規ファイル作成ボタンを利用してdocker-compose.ymlを作成します。 (2箇所の[メモしたパス]の箇所には先ほどpwdで確認したパスをコピーペーストで貼り付けてください。)

docker-compose.yml

version: '3'

services:

  php:
    build: ./php
    volumes:
      - [メモしたパス]/www:/var/www
    ports:
      - 8080:80
    depends_on:
      - mysql

  mysql:
    image: mysql:5.7 
    command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci --innodb-use-native-aio=0
    volumes:
      - [メモしたパス]/lamp_dock/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root 
      - MYSQL_DATABASE=sample 
      - MYSQL_USER=testuser 
      - MYSQL_PASSWORD=password
      - "TZ=Asia/Tokyo"
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_HOST=mysql
    depends_on:
      - mysql
    ports:
      - 8888:80

念の為詳しく解説しておりますが、現時点で深い理解は不要です。コピーペーストで構いません。

5. phpディレクトリにDockerfileを作成する

lamp_dockディレクトリ内に「php」というディレクトリを作成し、その中に「Dockerfile」という名前でファイルを作成します。(拡張子は不要です。)

Dockerfile

# apacheとphp7.2がインストールされたwebサーバ
FROM php:7.2-apache 

# 設定ファイルをコンテナにコピー
COPY ./php.ini /usr/local/etc/php/

# vim 及び 各種PHPモジュールのインストール、キャッシュ消去
RUN apt-get update && apt-get install -y \
  vim \
  && docker-php-ext-install pdo_mysql mysqli mbstring exif \
  && apt-get clean

先ほどのdocker-compose.yml内で指定した、phpのコンテナを作成するための設計図になります。

ベースとなっているのはDockerhubで配布されているphpモジュール設定済みのapacheで、さらにpdoを利用できるように各種モジュールをインストールしています。

6. php.iniの作成

phpディレクトリにもう一つのファイル「php.ini」を作成します。

php.ini

[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

phpの初期設定を行うファイルです。 デフォルトの設定に上記の設定が上書きされます。

7. docker-compose upの実行

ここまでで仮想環境の準備は完了です。

cd ~/MyDocker/lamp_sample/lamp_dock
docker-compose up -d

上記のコマンドで仮想環境の立ち上げを行います。 初回起動はそれぞれのコンテナの元となるイメージをダウンロードしてからコンテナ作成が行われるので3~5分弱程度の時間がかかります。(マシンスペック、通信環境によって異なります) 次回以降の起動は非常にスピーディになるのがdockerの特徴です。

Creating lamp_dock_mysql_1 ... done
Creating lamp_dock_php_1        ... done
Creating lamp_dock_phpmyadmin_1 ... done

上記の表示が行われ、プロンプトが表示されれば環境構築は完了です。

php環境の確認

それでは、作成した環境を確認してみましょう。 lamp_sampleディレクトリに新たに「www」というディレクトリが出来上がっています。

wwwディレクトリ内のhtmlディレクトリがドキュメントルートになっていますので、この中に「sample.php」を作成し

sample.php

<?php

print('Hello, World!');

以上の内容で保存しましょう。

webサーバのコンテナには8080番ポートでアクセスします。

ターミナルから

docker-machine ip default

でdockerが稼働している仮想マシンのipアドレスを確認し、

http://[確認したipアドレス]:8080/sample.php

にアクセスしてみましょう。

画面上に「Hello, World!」の文字が表示されればOKです。

phpmyadminの確認

続いて、phpmyadminを利用してみましょう。 phpmyadminのコンテナには8888番ポートでアクセスします。

http://[確認したipアドレス]:8888/

にアクセスしてみましょう。

docker-compose.ymlで

  • ユーザ名: testuser
  • パスワード: password

と設定していますので、上記を入力して phpmyadminにログインしてみましょう。

問題なくログインできればOKです。

以降も、toolboxをご利用の方はlocalhostを

docker-machine ip default

で確認したipアドレスに読み替えてください。

results matching ""

    No results matching ""