PHP プログラミング

【WordPress】WordPressをDockerToolboxを使用して構築する方法

投稿日:2018年11月28日 更新日:

どうも、こんばんは。

突然ですが、僕は開発にもっぱらxamppを使ってきました。

自宅での開発もLaravelとWordpressのみなので、xamppでも十分なのですが、会社の開発ではxamppでは対応できないケースが多々あります。

xamppでは対応できない言語での開発だったり、違うPHPバージョンの動確を行う際もいちいち対応したxamppをダウンロードするのは時間がかかりすぎる。

そもそもxamppはバージョン確認にとっておくにはパソコンのリソースを食いすぎる、など。

エンジニアになる前は環境構築の大変さなんて考えもしなかったんですが、これが本当に面倒で時間がかかるのです。

また、せっかく開発環境を構築したと思ってナレッジを残しておいても他のエンジニアの環境では何らかの設定の違いなどで実現できなったり、複数での環境構築となるとさらに困難となります。

そこで、今インフラ界隈で注目(かなり今更)されているツールである「Docker」を使用して、上記のような悩みをから解き放たれたいと思います!

Dockerとは

Dockerとはコンテナ技術を利用した仮想環境を作成、実行するためのプラットフォームです。

仮想化の技術に関してはホスト型仮想化やハイパーバイザ型仮想中など、いくつかの方式があります。

その違いを以下のサイトでとてもわかりやすく解説してくださってます。

参考:いまさらDockerに入門したので分かりやすくまとめます

Dockerではコンテナと呼ばれる仮想環境を構築・管理・配布することができます。そのメリットをざっくり言うと以下です。

・実行環境がパッケージングされたDockerコンテナを実行することで、どこでも(OS等の違いがあっても)同じ環境を作成できる

・Dockerコンテナを共有することで開発環境の配布が可能

・スクラップ&ビルドが容易

・Dockerfileさえあればいつでも開発環境を再現できる

ざっくりいうと、「開発者が簡単にアプリケーションを開発・デプロイできる仕組み」みたいです。

作成の流れとしては、アプリケーションの実行に必要なOSやライブラリなどを一つにまとめた「Dockerイメージ」を作成します。

作成したDockerイメージは実際の開発環境となる「Dockerコンテナ」の元になるもので、「Dockerfile」に記述した内容がイメージとして作成されます。

うーん、分かったような分からないような…

Dockerイメージとは

先述したとおり、DockerイメージとはDockerコンテナを作成するためのいわば土台です。

出来上がったDockerイメージは、実行環境で動くコンテナのもととなります。

Dockerfileというテキストファイルに構成情報を記述し、それをビルド(作成)することでイメージが作成されます。

このDockerfileに構築したい環境のOSやライブラリの内容を記載するわけですが、テキストファイルのため配布や移動が手軽です。

また、Dockerの開発元であるDocker社がさまざまなアプリケーションの構成が記述されたDockerfileを登録している「Docker Hub」というサービスを展開しているため、

自分でDockerfileを記述せずともDocker Hubにアクセスしさまざまな開発環境・アプリケーションを入手することが可能です。

Dockerコンテナとは

DockerコンテナはDockerイメージから起動できます。

Dockerは、Linux上で、コンテナ単位でサーバを動かすことから、仮想サーバととらえればいいと思います。

1つのDockerイメージから複数のコンテナを動かすことができます。

このあたりの概念は分かりにくいので、実際に手を動かして理解していくほうが早そうです。

Docker上でWordpressを起動

参考

以下のサイトでスライド式で分かりやすく解説していただいてます。

このスライドの内容をDockerToolboxを使用して再現したいと思います。

参考:DockerでWordpressサイトを開発してみよう

対象

Hyper-vの使用できないWindows10 Home 64bitの方法になります。

というのも、Windows10 Proの場合、Hyper-vというハイパーバイザー型の仮想環境が提供されており、それを使用してDockerを動かしますが、

Homeの場合Hyper-vが使用できないため、その代わりとなるVirtualBoxの使用できる「Docker Toolbox」をインストールします。

Docker Toolboxのインストール

以下のサイトを参考にしました。

参考:windows 10 home で docker を導入するメモ

このサイトの方法で問題なくインストールできると思います。

Docker仮想マシンの構築

Docker Toolboxのインストールに含まれる「Docker Quickstart Terminal」を起動すれば、初回のみVirtualBox上に「default」というDockerマシンを自動で作成してくれます。

その後、「Docker hub」と呼ばれる、コンテナ化されたイメージを提供してくれるサービスからDockerのコンテナイメージをpullします。

上記コマンドを実行するとダウンロードが始まります。

ダウンロード終了後、psコマンドで確認します。

ちなみに作成したDockerマシンはDOCKER-MACHINEコマンドか、DockerToolboxに含まれるVirtualBoxマネージャ上でも確認できます

ここまででWordpressの構築が完了しているはずですのでブラウザで確認します。

「192.168.99.100」をたたき、正常に構築が完了していればWordpressのインストール画面が表示されます。

Docker hubからプルしたWordpressのコンテナイメージにはmysqlも含まれているので、必要情報を入力してインストールを実行すれば、xamppでインストールした場合と同じように使用することができます。

課題

データの永続化やdockerfileでのコンテナ構築など、まだまだ踏み込んだ使い方に関しては不十分なので、

そういったところを調べ構築したいと思います。

参考

Docker Hub 概要

Docker入門(第一回)~Dockerとは何か、何が良いのか~

Docker入門 #1 【Dockerとは】

 

-PHP, プログラミング

関連記事

【Laravel-admin】PHPのライブラリ「Laravel-admin」のインストール方法

どうも、こんばんは。 今日はPHPのフレームワークの中でも国内外で多く利用されている「Laravel」と、管理画面作成用のパッケージである「Laravel-admin」のインストールと使い方を解説した …

【Laravel&Laravel-admin】artisanコマンドまとめ

Laravelにおいての「artisan」コマンドでは簡単にコントローラやモデルの作成等が行えます。 使用のたびに公式から探すのも面倒なのでまとめておきたいと思います。 いざ調べてみると結構面白く、知 …

【SendGrid】SendGridについての概要

はじめに この記事はクラウドベースのメール配信プラットフォーム「SendGrid」について紹介します。 最終的にはLaravel上に実装して、Webシステムから送信を行えるようにする予定ですが、 まず …

【Laravel-admin】good/csvを利用したCSVファイルのインポート

こんばんは。 一月に入り一気に寒くなってきましたね。 僕の住んでいる場所は山間にあるため、朝方は超冷えます。そして霧が深いので道路&フロントがガチガチに凍ります。 いいところもいっぱいあるので …

【SendGrid】SendGridでトランザクションテンプレート作成

はじめに 前回SendGridに登録を行いAPIKeyの作成を行いました。 関連記事:【SendGrid】SendGridについての概要 この記事ではSenGridのトランザクションメールのテンプレー …