LoginSignup
36

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-28

はじめに

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を利用していきたいなと思います。

参照

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36