どうも、こんばんは。
突然ですが、僕は開発にもっぱら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します。
1 |
$ docker pull tutum/wordpress |
上記コマンドを実行するとダウンロードが始まります。
ダウンロード終了後、psコマンドで確認します。
1 |
$ docker-machine ls |

ここまででWordpressの構築が完了しているはずですのでブラウザで確認します。
「192.168.99.100」をたたき、正常に構築が完了していればWordpressのインストール画面が表示されます。
Docker hubからプルしたWordpressのコンテナイメージにはmysqlも含まれているので、必要情報を入力してインストールを実行すれば、xamppでインストールした場合と同じように使用することができます。
課題
データの永続化やdockerfileでのコンテナ構築など、まだまだ踏み込んだ使い方に関しては不十分なので、
そういったところを調べ構築したいと思います。
参考
Docker入門(第一回)~Dockerとは何か、何が良いのか~