boot2dockerを使って3分でローカルWordPressを立ち上げる
はじめに
2014年はDockerにとって大きな躍進の年であったと思います。特にv0.8でMac OS Xがサポートされたことで、ローカル環境で気軽にDockerを使えるようになったことが大きかったのではないでしょうか。またDocker Hub登場により様々なサービスやアプリケーションのオフィシャルリポジトリが出来たことも一つの要因かと思います。
ということで、ここでは一発、boot2dockerを使ってさくっとローカルPCにWordPressを立ち上げてみます!
やってみる
ローカルWordPressに必要なのはmysqlとwordpressという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をセットアップすれば、普通に使えます!
このままでは、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年はどんな展開が待っているのでしょうか?大変楽しみですね!