詳細な解説付き!今から始めるDocker for Mac!快適なWordPress開発環境を手に入れよう!

  1. 公開日:2016/08/01
  2. 更新日:
  3. Mac
  4. 0

弊サイトでは、WordPressのテーマ、プラグイン開発環境として、VCCW – A WordPress development environment.を推奨してきました。Vagrant + VirtualBoxによる多機能な開発環境であるVCCW推奨の方針は変わらないのですが、Docker for Macの登場により、より快適な環境をMacに構築できるようになりました。もう、VagrantもVirtualBoxも不要です。しかも、一瞬で作成できます。

http://ottan.xyz/vccw-wordmove-deploy-4092/

Docker for MacでWordPress開発環境を手に入れる

Dockerの概念については、他サイトに譲るとして、ここではMac OS上にWordPressの開発環境を構築すること目的とします。以下のような心配がありますか?

  • WordPressを動作させるWebサーバ(Apache、Nginx)を用意していない
  • WordPressのデータを格納するMySQLを用意していない
  • Mac OS上の既存の開発環境を壊したくない

Docker for Macならもう大丈夫です。上記のような心配は、全て「コンテナ型」仮想化が全て解決してくれます。そう、Docker for Macは、Macで動作する仮想化技術です。仮想化されているため、既存の環境とは分離されます。

また、Dockerの「コンテナ」には「イメージ」が必要です。「イメージ」とは、テンプレートです。テンプレートは複数用意されています。テンプレートをダウンロードして、(箱を表す)コンテナで動作させれば良いのです。既存の環境はコンテナに手を出すこともありませんし、その逆も然りです。

しかも、Dockerは、MacのみならずWindowsでも動作します。もう、ハイパーバイザーのような仕組みは不要です。もちろん、このようなコンテナ型仮想化が全てのシステムに向いているわけではありませんが、少なくともWordPressの開発環境を作るだけなら、Dockerで十分です。

Dockerのインストール

Docker for Macから、ディスクイメージファイル(dmg)をダウンロードして、ウィザードに従ってインストールするだけです。インストールが完了したら、ターミナルを起動します。すでに起動している場合は、再起動します。

Dockerの基本操作

コンテナの作成

Dockerには、「コンテナ」で動作する「イメージ」が必要だと言いました。単独で「イメージ」をダウンロードし、ダウンロードした「イメージ」を「コンテナ」に紐付けて、ということもできますが、そのような煩わしいことすらする必要はありません(2016/9/6追記:オプションが誤っていたため修正しました)。

$ docker run --name db -e MYSQL_ROOT_PASSWORD=pass -d mysql:5.7

--nameオプションにコンテナの名称を、-eオプションに環境変数を、-dオプションはデタッチ(バックグラウンドで起動)を表します。また、runコマンドの最後にイメージの名称を指定します。ここでは、イメージに「mysql:5.7」を指定しています。「mysql」はイメージ名、「5.7」はタグ(バージョン)と呼ばれるものです。利用できるイメージ、タグは、Docker Hubで確認できます。今回使用するMySQLは、mysqlで確認できます。タグを指定しない場合は、最新の安定版がダウンロードされます。

環境変数のMYSQL_ROOT_PASSWORDは、MySQLのrootユーザのパスワードを指定します。この環境変数を指定しないとコンテナを起動できません。

初回起動時は、自動的に「イメージ」のダウンロードが始まります。そのため、初回起動時のみ時間がかかります。一度、ダウンロードしてしまえば、2回目以降は即時起動します。

以上で、コンテナの作成は完了です。MySQLが動作する独立した仮想マシンが一つ作成できました。すごいですね!

コンテナの停止/起動

リソースを解放するために、不要なコンテナは停止しておきます。停止するためには、以下のコマンドを実行します。

$ docker stop db

dbは、先ほど指定したコンテナの名前です。コンテナを再び起動するには、以下のコマンドを実行します。

$ docker start db

コンテナの状態を確認するためには、以下のコマンドを実行します。

$ docker ps -a

-aオプションは、停止しているコンテナも含めて、全ての情報を表示します。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
beac86d91c58        mysql:5.7           "docker-entrypoint.sh"   3 seconds ago       Up 2 seconds        3306/tcp            db

コンテナの削除

不要になったDockerのコンテナは削除しましょう。先ほど作成したコンテナを削除します。コンテナを削除するためには、事前にコンテナを停止しておきましょう。

$ docker rm db

削除したコンテナの再利用

削除したコンテナを再度利用したい場合は、コンテナの作成時に実行したコマンドを、再実行するだけです。

$ docker run --name db -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

イメージの削除

コンテナで使用しているイメージが不要になった場合は、削除します。イメージを削除するためには、イメージを起動しているコンテナが削除されている必要があります。コンテナを全て削除しておいてください。コンテナを全て削除した上で、イメージを削除するためには、以下のコマンドを実行します。

$ docker rmi mysql:5.7

mysqlはイメージ名、5.7はタグです。コンテナの作成時に指定したオプションと同一です。タグを省略した場合は、latestと解釈されます。そのため、タグを使用してコンテナを作成した場合は、必ずタグを指定してください。なお、現在残存しているイメージを確認する場合は、以下のコマンドを実行します。

$ docker images

イメージの情報を確認することができます。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 1195b21c3a45        7 weeks ago         380.2 MB

DockerによるWordPress環境の構築

では、いよいよWordPress環境を構築してみましょう。WordPressは、Docker Hubで提供されていますが、動作させるためには事前にMySQLが起動しているコンテナを用意する必要があります。前項でご紹介したコンテナを起動しておいてください。ここでは、コンテナの名前はdbとします。では、以下のコマンドを実行してください。

$ docker run --name wordpress --link db:mysql -p 8080:80 -d wordpress

--nameオプションは、コンテナの名称です。--linkオプションは、リンクするコンテナの名称を指定します(つまり、依存するコンテナ)。db:mysqldbは、前項で作成したコンテナの名称です。mysqlは固定です。-pは、ポートフォワーディングに指定します。つまり、ホスト(Mac)の8080番ポートを、コンテナの80番にフォワーディングします。-dオプションはバックグラウンドで実行します。最後にイメージの名称を指定します。今回は、タグを指定しませんでした。タグは、自動的にlatest(最新版)が指定されます。

-eオプションを指定して、環境変数を指定することもできます。環境変数を複数指定する場合は、-eオプションを複数指定します。環境変数については、WordPressを参照してください。

初回起動時は、イメージのダウンロードを伴うため時間がかかります。コンテナが起動したら、以下のURLにアクセスしてください。

http://localhost:8080

これで、WordPressのインストール画面が開くと思います。あとは、通常通りの手順でWordPressのインストールを進めてください。

Dockerコンテナへのアクセス

WordPressでテーマやプラグインを開発するためには、WordPressのファイルを直接編集したい場合もあるでしょう。そのような場合には、以下のコマンドを実行します。

$ docker exec -it wordpress /bin/bash

-iオプションはインタラクティブモード(対話型モード)、-tオプションは仮想端末を割り当てるモードです。これで、コンテナにアクセスできます。

DockerによるPhpMyAdminの構築

MySQLをインストールしたら、PhpMyAdminが使いたくなります(?)よね。PhpMyAdminも、オフィシャルイメージがDocker Hubに用意されています。PhpMyAdminを参照してください。PhpMyAdminのコンテナを起動するためには、以下のコマンドを実行してください。

$ docker run --name phpmyadmin -d --link db:db -p 8888:80 phpmyadmin/phpmyadmin

もうオプションのご説明は不要でしょう。--linkオプションに指定するdb:dbの前者のdbはコンテナの名称、後者のdbは固定です。また、-pオプションに指定するポートは、WordPressコンテナのポートとバッティングしないように注意してください。また、イメージの指定が、MySQLやWordPressと異なりますね。これは、Docker Hubの「Docker Pull Command」を参照してください。また、PhpMyAdminはタグの指定ができません。

まとめ

今回は、Docker for MacによるWordPress環境の構築についてご紹介しました。「Docker for Mac」の可能性を感じていただけましたでしょうか?高速です。そして、何より楽チンです。今回は、最小限の構成をご紹介したので、特に、WordPressには何の機能も導入されていません。あくまで最小限にWordPressが動作する環境を提供しているだけです。appcontainers/wordpressなど、ユーザによるカスタマイズされたWordPress環境も存在しています。Docker Hubを有効活用して最適な構成を見つけてみてください!

この記事が気に入ったらいいねしよう!
関連記事
ご意見ボード
匿名で管理人に送信されます。※送信専用です。返信はできません。
ご指摘・ご意見
Top