docker
DockerHub
docker-compose

DockerComposeでWordpressを立ち上げる

はじめに

$ docker run hello-world

前提として上記コマンドを無事に打てている状態とします。
Dockerの大まかなイメージから自分が作成したものをDockerhubにあげて、インストールして実行までにDockerを始めるところまで書いたのでよかったらみてください。

では早速

1、ファイルを作る

$ touch docker-compose.yml

2、作ったファイルを開く

$ open -e docker-compose.yml

3、開いたファイルに以下を記述する
この際Command+Sなどして保存をする。

docker-compose.yml
version: '3.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
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

4、docker-composeを元にコンテナ達を作成、接続するためのコマンドをうつ

$ docker-compose up -d

5、マシンのipアドレスの確認を行う
今回マシン名はdefaultだったため、defaultと書いていますが使うマシンによってdefault2とかだったりすると思います。ちなみに$ docker-machine lsで*(アスタリスク)がついているのが自分が使っているマシンです。

$ docker-machine ip default

5、確認後グーグルクロムに以下のurl入れれば表示されるはず

http://<自分のipアドレス>:8000/
スクリーンショット 2018-06-10 14.52.42.png

参考

http://docs.docker.jp/compose/wordpress.html
https://docs.docker.com/compose/wordpress/#define-the-project

最後に

日本語バージョンのymlファイルで一生懸命解決策を探していたらかなり詰まっていましたが、公式にちゃんと行えるものが乗っていて、迷ったら英語読めなくても公式に行くべきだと痛感しました。まだまだ道のりは長くて…(o*。_。)o

おまけ1

$ docker-compose up -d

を打った後に正常に起動しているか見るのに以下のコマンドを打ちます

$ docker ps

この時、以下の画像のようにPORTSが開いていればきっとみれるはずですが、
スクリーンショット 2018-06-10 14.55.36.png

以下の画像のように、PORTSに何も表示されていないと原因を探す必要があります。
スクリーンショット 2018-06-10 14.56.57.png

どこでエラーになったかは、調べたいコンテナidを使い

$ docker logs 2a995a8ebb34

を打って見るとどこで詰まったかわかるので是非。

おまけ2

終了させたいときは、起動しているコンテナを終了させる。
d8604d2e0b29の部分は終了するidを記述。今回2つあるはずなので2つ終了させる

$ docker stop d8604d2e0b29 

以下のコマンド(起動しているコンテナのみ表示)でなければOK

$ docker ps

又は実際にクロムでurlにアクセスできないようになっていればOK

おまけ3

ymlの記述を勉強する旅にでる(github)
https://github.com/search?q=in%3Apath+docker-compose.yml+extension%3Ayml&type=Code