Edited at

Docker for MacでWordPressローカル環境構築

More than 1 year has passed since last update.


はじめに

WordPressのローカル開発環境を、VagrantとVirtualBoxで構築していたのですが、vagrant upでなかなかの時間がかかることにみぞみぞしておりました。

Docker for macなるものを見つけ、試しに使ってみる事にしました。


アジェンダ


  • Dockerインストール

  • MySQLコンテナの作成

  • WordPressコンテナの作成

  • phpMyAdminコンテナの作成


Dockerをインストール

Install Docker for Mac へアクセスしインストールする。

1.png

ダウンロードされた、Docker.dmgをクリック。

2.png

Applicationsへドラッグ & ドロップ。

3.png

Docker.appをクリック。

ちなみに彼の名前はMoby Dock

https://blog.docker.com/2013/10/call-me-moby-dock/

インストールが完了すると、dockerコマンドが使える。

試しに使えるのか確認。

$ docker --version 

Docker version 17.03.0-ce, build 60ccb22


DockerイメージとDockerコンテナ

ざっくりな説明ですが。。。。


Dockerコンテナ


  • Dockerイメージを動かす為の箱。


Dockerイメージ


  • コンテナ作成のベースとなるテンプレート。


MySQL用のコンテナを作成

Dockerに用意されているコマンドを叩けば、すぐ作成できる。

詳しくは、Docker Hubにアカウント登録し、自分に必要なバージョンを用意すると良い。

今回は、下記で進めていく。

$ docker run --name (コンテナ名) -e MYSQL_ROOT_PASSWORD=パスワード -d mysql:5.7



  • (コンテナ名)に名前を入れる


  • パスワードにMySQLのルートユーザのパスワードを入れる

(例)

$ docker run --name dev_db -e MYSQL_ROOT_PASSWORD=XXXXX -d mysql:5.7

起動したコンテナの状況を確認するコマンド。

-aは、すべての情報を表示。

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e0153fa2cbf mysql:5.7 "docker-entrypoint..." 2 minutes ago Up 2 minutes 3306/tcp dev_db

MySQLが動いているかの確認するコマンド

$ docker exec -it dev_db bash

root@780a8747c93e:/# ps ax
PID TTY STAT TIME COMMAND
1 ? Ssl 0:00 mysqld
145 ? Ss 0:00 bash
150 ? R+ 0:00 ps ax

root@780a8747c93e:/# exit


Wordpress用のコンテナを作成

WordPressを動かすDockerコンテナを作成する

docker run --name (WordPress用のコンテナ名) --link db:mysql -p 8080:80 -v (~/ローカルパス):/var/www/html -d wordpress



  • (WordPress用のコンテナ名)に名前を入れる


  • (MySQLのコンテナ名)に先ほどの作成したMySQLのコンテナ名を入れる


  • (~/ローカルパス)にwordpressが格納されるディレクトリを指定する。(作業ディレクトリ)

  • 8080番ポートを指定

(例)

docker run --name dev_wp --link dev_db:mysql -p 8080:80 -v ~/Project/dev_wp/wordpress:/var/www/html -d wordpress

指定したパスでパッケージが展開されているか確認する。

$ cd ~/Project/dev_wp/wordpress

$ ls -la
-rw-r--r--@ 1 oohashiken staff 234 3 24 19:10 .htaccess
-rw-r--r--@ 1 oohashiken staff 418 9 25 2013 index.php
-rw-r--r--@ 1 oohashiken staff 19935 1 3 03:51 license.txt
-rw-r--r--@ 1 oohashiken staff 7433 1 12 02:46 readme.html
-rw-r--r--@ 1 oohashiken staff 5447 9 28 06:36 wp-activate.php
drwxr-xr-x@ 89 oohashiken staff 3026 3 7 01:00 wp-admin/
-rw-r--r--@ 1 oohashiken staff 364 12 19 2015 wp-blog-header.php
-rw-r--r--@ 1 oohashiken staff 1627 8 29 2016 wp-comments-post.php
-rw-r--r--@ 1 oohashiken staff 2764 3 24 19:10 wp-config-sample.php
-rw-r--r--@ 1 oohashiken staff 3145 3 24 19:10 wp-config.php
drwxr-xr-x@ 5 oohashiken staff 170 3 7 01:00 wp-content/
-rw-r--r--@ 1 oohashiken staff 3286 5 25 2015 wp-cron.php
drwxr-xr-x@ 187 oohashiken staff 6358 3 7 01:00 wp-includes/
-rw-r--r--@ 1 oohashiken staff 2422 11 21 11:46 wp-links-opml.php
-rw-r--r--@ 1 oohashiken staff 3301 10 25 12:15 wp-load.php
-rw-r--r--@ 1 oohashiken staff 33939 11 21 11:46 wp-login.php
-rw-r--r--@ 1 oohashiken staff 8048 1 11 14:15 wp-mail.php
-rw-r--r--@ 1 oohashiken staff 16250 11 29 14:39 wp-settings.php
-rw-r--r--@ 1 oohashiken staff 29896 10 19 13:47 wp-signup.php
-rw-r--r--@ 1 oohashiken staff 4513 10 15 04:39 wp-trackback.php
-rw-r--r--@ 1 oohashiken staff 3065 9 1 2016 xmlrpc.php

同じように、起動したコンテナの状況を確認する。

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c345591d9e9c wordpress "docker-entrypoint..." 6 minutes ago Up 6 minutes 0.0.0.0:8080->80/tcp dev_wp
780a8747c93e mysql:5.7 "docker-entrypoint..." 26 minutes ago Up 26 minutes 3306/tcp dev_db

0.0.0.0:8080->80/tcpが表示されてるので、アクセス。(どちらでも)


PhpMyAdmin用のコンテナを作成

Docker Hub phpmyadmin/phpmyadmin

docker run --name (PhpMyAdmin用のコンテナ名) -d --link (MySQL用のコンテナ名:db) -p 8888:80 phpmyadmin/phpmyadmin



  • (PhpMyAdmin用のコンテナ名)に名前を入れる


  • (MySQL用のコンテナ名:db)に先ほどの作成したMySQLのコンテナ名を入れる。:dbは固定

  • wordpress(8080)と被らないように8888番ポートを指定

(例)

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

同じように、起動したコンテナの状況を確認する。

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4343b788195b phpmyadmin/phpmyadmin "/run.sh phpmyadmin" 2 seconds ago Up 2 seconds 0.0.0.0:8888->80/tcp phpmyadmin
c345591d9e9c wordpress "docker-entrypoint..." 21 minutes ago Up 21 minutes 0.0.0.0:8080->80/tcp dev_wp
780a8747c93e mysql:5.7 "docker-entrypoint..." 41 minutes ago Up 41 minutes 3306/tcp dev_db

0.0.0.0:8888->80/tcpが表示されてるので、アクセス。(どちらでも)

ログインは、先ほど作成したMySQLのパスワード。

ユーザー名:root

パスワード:XXXXX

あとは、いつも通り、ユーザーを追加したりデータベースの作成を進めれば良い。


コマンド一覧 操作方法

Dockerコマンド
説明

docker --version
バージョンを表示する

docker ps -a
コンテナの一覧表示(-a で停止してるコンテナも表示)

docker start コンテナ名
コンテナ開始

docker stop コンテナ名
コンテナ停止

docker rm コンテナ名
不要のコンテナ削除

docker images
イメージの一覧表示

docker rmi イメージ名
コンテナで使用しているイメージを削除

docker exec -it コンテナ名 /bin/bash
※抜ける時は、 みんな大好きexit

Dockerコンテナへアクセス

※今回使用したコマンド。


おわりに

高速 + 簡単。

ミスった場合も数秒で削除し、また作り直すことができる。

私のような低スペックなPCで作業してる人には、とてもありがたいです。

今回、紹介した以外にも、高性能にカスタマイズされた環境もありますので、Docker Hubを利用していきたいなと思います。


参照