Docker for Mac に Word Pressを導入

## Docker for Mac インストール:ferry:

Macアプリをダウンロード(Stable channelの安定版)
https://docs.docker.com/docker-for-mac/install/

インストール
![スクリーンショット 2017-04-23 17.58.39.png](https://qiita-image-store.s3.amazonaws.com/0/33553/3e56c090-f439-8016-0a3a-e2a0cc92f9d1.png)

アプリケーションから選択
![スクリーンショット 2017-04-23 18.45.45.png](https://qiita-image-store.s3.amazonaws.com/0/33553/3bc58d36-0e22-4a6e-80af-1e635cfa510c.png)

Next!
![スクリーンショット 2017-04-23 17.58.58.png](https://qiita-image-store.s3.amazonaws.com/0/33553/41dce63a-2444-8b07-399b-8dfaaa0c9f8b.png)

OK!
![スクリーンショット 2017-04-23 17.59.08.png](https://qiita-image-store.s3.amazonaws.com/0/33553/5dacaa3a-72e3-4f68-2b83-0056966677af.png)

ツールバーの上に表示される
![スクリーンショット 2017-04-23 17.59.26.png](https://qiita-image-store.s3.amazonaws.com/0/33553/88e3a0c5-71e1-fb68-9243-2b0aefb6b24e.png)

ターミナルからDockerのバージョン確認

```
$ docker --version
Docker version 17.03.0-ce, build 60ccb22

$ docker-compose --version
docker-compose version 1.11.2, build dfed245

$ docker-machine --version
docker-machine version 0.10.0, build 76ed2a6
```

## MySQLを設定

MySQLのインストール

```
$ docker run --name test_wordpress_db -e MYSQL_ROOT_PASSWORD=pass -d mysql

Unable to find image 'mysql:latest' locally
latest: Pulling from library/mysql
6d827a3ef358: Pull complete
ed0929eb7dfe: Pull complete
03f348dc3b9d: Pull complete
fd337761ca76: Pull complete
7e6cc16d464a: Pull complete
ca3d380bc018: Pull complete
23c12ddae61f: Pull complete
14553c628372: Pull complete
c9445076b453: Pull complete
8feabd297745: Pull complete
835cd3cde5d5: Pull complete
Digest: sha256:3ea679cbde178e346dcdeb538fd1ea4f1af256020ebeb464ccb72a1646a2ba6d
Status: Downloaded newer image for mysql:latest
1ea5904d998eee2f1c78db059f6eca30a2c5aecc0c14010598bee34c6073cc55
```

インストール確認

```
$ docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
1ea5904d998e        mysql               "docker-entrypoint..."   36 seconds ago      Up 35 seconds       3306/tcp            test_wordpress_db
```

## WordPress起動

```
$ docker run --name test_wordpress --link test_wordpress_db:mysql -p 8080:80 -d wordpress

Unable to find image 'wordpress:latest' locally
latest: Pulling from library/wordpress
6d827a3ef358: Already exists
87fe8fbc743a: Pull complete
f6d1a8d304ab: Pull complete
caf3547d9b73: Pull complete
1004db2760ff: Pull complete
66e2d66a547e: Pull complete
bbfaa62c234a: Pull complete
19ce8807f4d1: Pull complete
65dc0142d59b: Pull complete
a95f4fa43ae2: Pull complete
f4edd48c3730: Pull complete
d58fc629c9d1: Pull complete
c75a71ebb7f4: Pull complete
92667bd16dd2: Pull complete
158b965a06fc: Pull complete
cdbb556ec528: Pull complete
79dd5209b5a0: Pull complete
c390e42be10f: Pull complete
Digest: sha256:980dcdf0c66aa863f309f1d2bb618f4981dcb926a43bc0f65f5d2a0c3be81149
Status: Downloaded newer image for wordpress:latest
dcdc5a80421a9e49875c65d2a3ffa65b3461634abb8f491a6405d2135be74a1e
```

接続確認

`http://localhost:8080/`にアクセス

![スクリーンショット 2017-04-24 2.27.30.png](https://qiita-image-store.s3.amazonaws.com/0/33553/07bfdf18-06f1-3ed8-3ebd-8a9ef033121f.png)

これだけで設定をいじれる

![スクリーンショット 2017-04-26 1.13.23.png](https://qiita-image-store.s3.amazonaws.com/0/33553/70e079e4-59ef-faaa-39ee-524d7920b0b1.png)


## ローカルからファイルを編集するのための設定

#### WordPressのディレクトリ確認

以下を実行すると`/var/www/html`の中に入るので、`ls`すると`index.php`などWordPressのファイル群がある 

```
$ docker exec -it test_wordpress bash

root@ec40bf496724:/var/www/html#
```

#### ローカルと同期する

`docker run`のオプションでローカルのディレクトリと同期するコマンドがあるので、そちらを使う。
一旦`wordpress` の Container と Image を削除。

```
起動中のコンテナの確認
$ docker ps
コンテナの停止
$ docker stop {コンテナID}
停止中のコンテナ確認
$ docker ps -a
コンテナの削除
$ docker rm {コンテナID}
コンテナが消えていることを確認
$ docker ps -a
イメージの確認
$ docker images
イメージの削除
$ docker rmi {イメージID}
イメージのが消えている事を確認
$ docker images
```

#### ローカルの指定したディレクトと`/var/www/html`の中身を同期するオプションを付けてWordPressを起動する

`$ docker run --name test_wordpress --link test_wordpress_db:mysql -p 8080:80 -v /{ローカルのパス}:/var/www/html -d wordpress` 

これで同期されているので、ローカルにさっきのファイル群が見れるようになる。
`wordpress`が立ち上がっていれば、ローカルのファイルを編集するだけで同期される。

## 参考

http://redsnapper.hatenablog.com/entry/2016/11/09/125527