boot2dockerを使って3分でローカルWordPressを立ち上げる

はじめに

2014年はDockerにとって大きな躍進の年であったと思います。特にv0.8でMac OS Xがサポートされたことで、ローカル環境で気軽にDockerを使えるようになったことが大きかったのではないでしょうか。またDocker Hub登場により様々なサービスやアプリケーションのオフィシャルリポジトリが出来たことも一つの要因かと思います。

ということで、ここでは一発、boot2dockerを使ってさくっとローカルPCにWordPressを立ち上げてみます!

やってみる

ローカルWordPressに必要なのはmysqlwordpressという2つのオフィシャルリポジトリです。

まずはboot2dockerを立ち上げます。

$ boot2docker start

次にデータを格納するmysqlコンテナをコマンド1行で起動します。MYSQL_ROOT_PASSWORDにはmysqlのrootアカウントのパスワードを設定します。

$ docker run --name mydb -e MYSQL_ROOT_PASSWORD=password -d mysql

次にwordpressコンテナを同じくコマンド1行で起動します。先にmydbという名前で起動したmysqlコンテナとリンクを張っています。またコンテナの80ポートをホストの8080ポートにバインドしています。

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

コンテナが起動していることを確認します。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                  NAMES
8b6f007428c4        wordpress:latest    "/entrypoint.sh apac   12 seconds ago      Up 11 seconds       0.0.0.0:8080->80/tcp   mywp
4be53141dcf9        mysql:latest        "/entrypoint.sh mysq   4 minutes ago       Up 4 minutes        3306/tcp               mydb

接続するIPアドレスを確認。

$ boot2docker ip

The VM's Host only interface IP address is: 192.168.59.103

あとはWebブラウザからhttp://IPADDRESS:8080/に接続すると、ほらWordPressの画面が表示されます!

WordPress_›_Installation

あとは普通にWordPressをセットアップすれば、普通に使えます!

ダッシュボード_‹_smokeymonkey_—_WordPress

このままでは、mysqlコンテナが停止するとデータが消えてしまいます。そこで以下のようにdocker execを使ってDBのバックアップをとってからコンテナを停止すると良いでしょう。(docker execはdocker 1.3の新機能です、本当便利!)

$ docker exec mydb mysqldump --all-databases --password=password > all_`date +%Y%m%d-%H%M%S`.sql

$ ls -alF all*
-rw-r--r--  1 sasakidaisuke  staff  615949 10 31 17:06 all_20141031-170633.sql

さいごに

3分どころかコマンド3行で起動しました。繰り返しになりますが、2014年はDockerが大きく躍進した一年となりました。2015年はどんな展開が待っているのでしょうか?大変楽しみですね!