こんにちは。
今回はローカルでPHPが動作する環境を作る事ができるDockerを紹介したいと思います。
新規契約や、サーバに関する深い知識は必要がなく、Dockerを理解すれば簡単にサーバ構築ができるので、ぜひ最後までご覧ください。
Dockerとは?
- 「データやプログラムを隔離できる」仕組み
- OS(Linux)やPHP、SQLなどをそれぞれ一つのコンテナとして組み合わせて実行環境を作成する
- 様々なサーバを構築する事も可能(webサーバ、メールサーバ…他多数)
- 今回はwebサーバ、データベースサーバのみ使用
Dockerのメリットとデメリット
メリット
- 独立しているため、一部だけ差し替えたり修正する事も安全に行える
- 「イメージ化」が可能なので自分で1から作らなくても手軽に構築できる
- コンテナにカーネルを含める必要がないので、かなり軽量
- 全員に同じ開発環境を提供する事ができる
デメリット
- Linux用ソフトウェアしか対応していない
- 1つのマシンにたくさんのサーバを載せることができるが、親となるマシンが故障すると、全てのコンテナが影響を受ける
Dockerを使ってみよう
Dockerの使用条件
- OSに求められること
Windows10 64bit版であり、Build 16299以降のバージョンであること - ハードウェアに求められること
CPUはSLAT機能をサポートした64ビットプロセッサ
メモリ4GB以上 - Mac版の使用条件
2010年以降に発売されたモデルであること
MacOS 10.13(Hign Sierra)以降のOSであること
Dockerのインストール
Docker Desktopをhttps://www.docker.com/からインストールし、起動します。
インストールできたら下記コマンドを実行してください。Dockerのバージョンが表示されたらインストール完了です。
docker —version
必要なファイル「docker-compose.yml」を作業ディレクトリの直下に設置し、コマンドを実行してDockerを起動させます。
作業ディレクトリ ├docker-compose.yml ├index.php(確認用ファイル)
代表的なコマンド
- ps:コンテナの一覧表示
- up:コンテナの生成と起動
- scale:生成するコンテナ数の指定
- logs:コンテナログの確認
- run:コンテナの実行
- start:コンテナの起動
- Down:コンテナとネットワークを停止・削除
- stop:コンテナの停止
- restart:コンテナの再起動
- rm:コンテナの削除
使用例:
docker-compose up -d
Docker Composeについて
- 構築に関わるコマンド文の内容を1つのテキストファイルに書き込んで、一気に実行したり、停止・破棄したりできるプログラムです。
- Docker ComposeはDocker Engineとは別のソフトウェアですがWindowsやMacで使うデスクトップの場合、既に入っています。
- インストールされているか確認するには下記コマンドを実行してください。
docker-compose —version
定義ファイルの書式
ファイル名は「docker-compose.yml」です。※必ずこの名前にしてください。
ファイルは直下に設置してください。
version: '3' services: php: image: php:7.2-apache volumes: - .:/var/www/html ports: - 8000:80 container_name: php7.2-trial2 mysql: platform: linux/x86_64 #Mac M1 image: mysql:5.7 volumes: - /var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=test - MYSQL_USER=test - MYSQL_PASSWORD=test container_name: mysql5.7-trial2
PHPを動かす環境を作ろう
- PHP用のdocker-compose.ymlファイルを用意して下記コマンドを実行
docker-compose up
- 下記コマンドを実行してコンテナを削除できる
docker-compose down
- コマンド、Docker Desktopどちらでも操作が可能
- 接続URL(http://localhost:8000/ 任意に変更可)にアクセスして確認用のindex.phpが表示されれば成功です。
まとめ
- まずはDocker Desktopをインストール
- docker-compose.ymlファイルを用意してdocker-compose up
- 仕組みが分かれば簡単にWordPressもインストールできる
駆け足でDockerについて紹介しましたがいかがでしたでしょうか?
今では簡単に、ローカルにLinaxやデータベースを用意する事ができサイト制作や開発の作業パフォーマンスを上げる事が可能となっています。
今後PHP8系への移行も増えてくると思うのでローカルで環境を構築して検証する事は必須になってくるかと思います。
慣れてしまえばDockerなくしてコーディングできないくらい便利なのでぜひお試しください。