【Docker】ローカル(Win, Mac)にサクッとWordpress環境を構築する

## Docker DesktopをローカルPCにインストール
https://www.docker.com/products/docker-desktop
お使いの環境(win, mac)に合わせたダウンロードを実行してください。

無事インストールされているか下記コマンドで確認

```
docker -v
```

これでローカルマシンにDocker Engineが搭載されました。

で、起動しなければ意味がないのでDockerを起動しておいてください。
おそらくクジラのアイコンがどこかにいれば起動していると思います。
※下記はwindowsのタスクトレイの例
![名称未設定-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622473/e3f4ec02-384c-59cb-71de-3c8da6f518e6.png)


Dockerでの作業は、あくまでも**Docker Engineという仮想環境の中での出来事である**ということは、常に念頭に置いてください。

**「環境はローカルホスト(PC)に構築されているんじゃない、Dockerホスト(Engine)に構築されているんだ」**

## Pythonをインストールする
え？python？何か間違ってませんか？って思った方も多いでしょう。
気持ちは分かります。ただその思いはいったん胸にしまいましょう。
一応、簡単に説明しておくと、
この後、Docker操作を補佐するツールもインストールすることになりますが、
それがPython製のツールなのです。
その名も**「Docker Comopose」**
そいつを簡単にインストールするにはPythonが話が早いってわけですね。
**「python3」「python3-pip」**をそれぞれインストールします。
https://www.python.org/
※pythonをインストールして使える状態に持っていく方法はここでは割愛しますが、
winの方はmacより若干複雑かもしれない。健闘を祈る。

無事インストールされているか下記コマンドで確認

```
python3 -V
```

## Docker Composeをインストールする
というわけで、Docker操作の補佐ツールを導入しましょう。

```
pip3 install docker-compose
```
※pipはpythonパッケージ管理ツール。nodeでいうところのnpmだと思ってください

無事インストールされているか下記コマンドで確認

```
docker-compose --version
```

## 作業用ディレクトリを作成する
ローカルPCの任意の場所に作成し、そのディレクトリへ移動してください。
今回は「wp_test」とします。
コマンドでも、GUIで手動でも何でもいいです。

```
mkdir ~/wp_test
cd ~/wp_test
```
※いやちょっと待てよ、さっきローカルホスト(PC)で作業するわけじゃない、みたいなこと言ってたけど
作業用ディレクトリをこんな形で作るって何だか矛盾してないかい？って思った方、その指摘は鋭いです。
これはあくまで、「ある作業」用という意味で、これから作る予定のWordpressを利用したプロジェクトの本体の場所を意味しません。
後ほど全貌が明らかになるでしょう。**今は静観なさい。**

## docker-compose.ymlを作成する
これは何？って感じでしょうね。
名前からしてあれですが、**Docker composeの設定ファイルをYAML形式で書いたもの**です。
ひとまずエディタで下記内容で作成保存して、先ほど作成した該当ディレクトリに置いてください。
※YAML形式とは、空白インデントで構造ブロックを表現する記述方法です

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

services:
  wordpress-db:
    image: mysql:5.7
    networks:
      - wordpressnet
    volumes:
      - wordpress_db_volume:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: myrootpassword
      MYSQL_DATABASE: wordpressdb
      MYSQL_USER: wordpressuser
      MYSQL_PASSWORD: wordpresspass

  wordpress-app:
    depends_on:
      - wordpress-db
    image: wordpress
    networks:
      - wordpressnet
    ports:
      - 8080:80
    restart: always
    environment:
      WORDPRESS_DB_HOST: wordpress-db
      WORDPRESS_DB_NAME: wordpressdb
      WORDPRESS_DB_USER: wordpressuser
      WORDPRESS_DB_PASSWORD: wordpresspass

networks:
  wordpressnet:

volumes:
  wordpress_db_volume:

```
※書いてある内容についてはいったん考えずに

## Docker Composeでコンテナを起動する
ひとまずこの設定でコンテナを起動させちゃいましょう。
必ずdocker-compose.ymlを置いたディレクトリで実行してください。

```
cd ~/wp_test
docker-compose up -d
```

※ここでコンテナが起動しなかった場合、
一つにはDockerEngineそのものが起動しているか再度確認してください。
クジラアイコンがタスクトレイにいればOKです。

### 起動を確認する
http://localhost:8080/

Wordpressの初期インストール画面が表示されるはずです。
![screenshot-localhost_8080-2021.01.12-17_07_57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622473/c9bd6cf5-1c83-7585-389c-1282d7f16a0f.png)

コマンドでコンテナの起動確認

```
docker-compose ps
```
起動しているコンテナが表示されているはずです。
※今回は二つ
![dd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622473/0a01f7e1-0eb2-13b0-6fdb-08a298f7a9b4.png)


## コンテナを停止、破棄する

```
docker-compose down
```

## 最後に
「おいおい、こんな駆け足でいって、伏線の回収もなしかよ！」って声が聞こえてきそうですね。
時間も時間なので、今回はここまでだよ。
ひとまずこの状態でWordpressを設定してみて、いろいろいじってみてほしい。
そうすると様々な問題が出てくるだろう。
そしたらまた会おう。