Docker for Macをインストールして、WordPress開発環境を手に入れたメモ

いつもはvccwで開発環境を作っているが、
今回はDockerでやってみる。

Dockerは昨日触り始めたばかりで、理解が追いついていないので、
やったことのメモのみ。。。


#とりあえずやってみる

##インストール

https://docs.docker.com/docker-for-mac/install/

<img width="997" alt="Dockerインストール画面" src="https://qiita-image-store.s3.amazonaws.com/0/40940/0642c451-3be0-7efb-f2d9-f52aa6f787c0.png">

左側のStableをクリックするとDockerインストーラーが落ちてくる。

###かわいいクジラをドラッグ

<img width="832" alt="Dockerインストーラー" src="https://qiita-image-store.s3.amazonaws.com/0/40940/6545d122-f14e-176e-0071-084591f1bd8c.png">


###起動してみた

「開く」をクリック

<img width="614" alt="確認画面" src="https://qiita-image-store.s3.amazonaws.com/0/40940/3f7f449a-66f9-79bc-b71c-1b087b03eee3.png">

###ニコニコしてるので「Next」

<img width="710" alt="Dockerインストール中のポップアップ画面" src="https://qiita-image-store.s3.amazonaws.com/0/40940/2dcbf8fc-cd28-aad8-8737-07f524fbd382.png">

###PCのパスワードを聞かれる

<img width="710" alt="Dockerインストール中のポップアップ画面" src="https://qiita-image-store.s3.amazonaws.com/0/40940/3da3da1f-591f-cae3-63bc-9a42d18c5ed0.png">

###入力したら、これが出てきた

<img width="417" alt="Docker画面" src="https://qiita-image-store.s3.amazonaws.com/0/40940/6f98fe9f-1d7e-4e7c-6f13-976d24880a41.png">

###インストールされたか確認

RaunchPadからターミナルを立ち上げて、
<img width="512" alt="RaunchPad画面　ターミナル" src="https://qiita-image-store.s3.amazonaws.com/0/40940/9970eb1f-3453-9c6f-aae8-efbc1d7689f1.png">


```
$ docker version
```
と打ってみる。

```
Client:
 Version:	17.12.0-ce
 API version:	1.35
 Go version:	go1.9.2
 Git commit:	c97c6d6
 Built:	Wed Dec 27 20:03:51 2017
 OS/Arch:	darwin/amd64

Server:
 Engine:
  Version:	17.12.0-ce
  API version:	1.35 (minimum version 1.12)
  Go version:	go1.9.2
  Git commit:	c97c6d6
  Built:	Wed Dec 27 20:12:29 2017
  OS/Arch:	linux/amd64
  Experimental:	true
```

インストールできたっぽい。

Docker（For Mac）のマニュアルは基本はこれの模様。
https://docs.docker.com/docker-for-mac/

##WordPressを作ってみる

参考：
https://hub.docker.com/_/wordpress/

###イメージを落としてくる

```
$ docker pull wordpress
```

以下が表示され、最新版をインストールしてくれた。

```
[上は省略]
Status: Downloaded newer image for wordpress:latest
```


###[参考ページ](https://hub.docker.com/_/wordpress/)の「How to use this image」のところをもとに、下記をたたいてみる。

```
$docker run --name some-wordpress --link some-mysql:mysql -d wordpress
```

MySQLがないよとエラー。

```
docker: Error response from daemon: could not get container for some-mysql: No such container: some-mysql.
See 'docker run --help'.
```

###MySQLのイメージを落としてくる

下記２記事を参考にさせていただきました！

[dockerでmysqlを使う](https://qiita.com/astrsk_hori/items/e3d6c237d68be1a6f548#%E5%85%AC%E5%BC%8F%E3%81%AEmysql%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E4%BD%BF%E3%81%86)

[Dockerでwordpressの環境構築](https://qiita.com/shigure_onishi/items/8889f6a97f8acd6122eb#docker-hub%E3%81%8B%E3%82%89mysql%E3%81%AE%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%A6%E8%B5%B7%E5%8B%95)


```
$docker pull mysql
```

インストールできた。

```
[上は省略]
Status: Downloaded newer image for mysql:latest
```

###MySQL立ち上げる

```
$docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 3306:3306 mysql
```

以下をたたいて見たものの、動かずここからどうしたらいいか分からない。

```
docker run --name wordpress --link mysql:mysql -d wordpress
```



[参考ページ](https://hub.docker.com/_/wordpress/)に

>
>```
>$ docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -d wordpress
>```
>
>>Then, access it via http://localhost:8080 or http://host-ip:8080 in a browser.

と書いてあったので、

###一回止める。

```
$docker stop wordpress
```

###Wordpressがないのを確認

```
$docker ps
```

###もう一度たたいてみる

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

怒られる。

```
docker: Error response from daemon: Conflict. The container name "/wordpress" is already in use by container "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx". You have to remove (or rename) that container to be able to reuse that name.
```


###名前変えて、もう一度

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

できた！！！
http://localhost:8080/

<img width="1009" alt="WordPressインストール画面" src="https://qiita-image-store.s3.amazonaws.com/0/40940/2f764b70-62b6-41e5-700d-5ee59cf3ee28.png">


普通にWordPressの画面上からインストールがサクッとできた。（全然待ってない）
だが、WordPressのテーマ編集ができない。。。

#comporseで開発環境を作ってみる

これみながらやる。
https://docs.docker.com/compose/wordpress/

###comporseをインストール

しようと思ったが、

https://docs.docker.com/compose/install/#install-compose
comporseは「Docker For Mac」にはすでに入っているらしい

###プロジェクト用の新規ディレクトリ作る

###新規ディレクトリの中に「docker-compose.yml」を作成

```docker-compose.yml
version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
      - ./www:/var/www/html
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:
```

※「wordpress：」の入れ子に、下記の「volumes」を入れると、WordPressのファイルが触れるようになる。
以下はwwwのフォルダが出来上がって、その中に生成される。


```
     volumes:
      - ./www:/var/www/html
```


###ターミナルで、作ったディレクトりに移動し、以下を入力

```
$docker-compose up -d
```

これで、`http://localhost:8000/`をブラウザで開けば、WordPressのインストール画面に！

###止めるときは、ターミナルで以下を入力

```
$docker-compose down
```

#以上

今後は、初期設定とかもろもろインストールが終わった状態の
開発環境を一発で作れるようにしたい。