dockerでImmutable InfrastructureなWordPressを考える

5,234 views
5,063 views

Published on

dockerでImmutable InfrastructureなWordPressを考えてみたよ by ConoHa の中の人

Published in: Internet

dockerでImmutable InfrastructureなWordPressを考える

  1. 1. dockerで Immutable Infrastructureな WordPressを考える 2014/06/08 塩原宏明 (GMOインターネット ConoHa担当) 1
  2. 2. 2 自己紹介 • 発表してる人 ‒ 塩原宏明 ‒ なんでも屋です •UI/UX、フロントエンド、 バックエンド、全般… ‒ VPS「ConoHa」(GMOインターネット) の中の人 •萌えキャラでサーバーを売る、 いま業界で いちばんよくわからないサービス
  3. 3. 3 dockerってなに? • https://www.docker.io/ • 捕鯨関係ですかね?(炎上案件)
  4. 4. 4 ぶっちゃけ説明(細けえことはいんだよ) • サーバーの中で、 さらに何台もサーバーを立てちゃうソフト • 優等生の質問 ‒ 「それってVPSとか?」 ‒ 「Vagrantみたいな?」 ‒ だいたいあってるけど、 もっとお手軽! •VPSやVirtualBox上でも動く • dockerで立てたサーバー=「コンテナ」
  5. 5. 5 dockerの特徴 • ファイルに定義を書くだけで サーバー(コンテナ)を作れる! ‒ Dockerfile • 定義を呼び出すだけでどんどんサーバーが 立ち上がる! • コンテナを終了させると元通り。 元に戻さない方法もある FROM centos RUN yum -y install telnet RUN yum -y install httpd CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
  6. 6. 6 なにがうれしいの? Dockerfileさえあれば どこに行っても 同じ環境のサーバーを使える! Dockerfileさえあれば どこに行っても 同じ環境のサーバーを使える! サーバーを 使い捨てる感覚で利用できる! サーバーを 使い捨てる感覚で利用できる!
  7. 7. 7 …よくわかんないよ • うちでこういうの配ってるんで参考にしてください • ConoHaブースか http://www.conoha.jp/
  8. 8. 8 Immutableなんとかってなに? Immutable InfrastructureImmutable Infrastructure 10回言うと舌噛む新手の buzzword…ではない 10回言うと舌噛む新手の buzzword…ではない どこででもすぐ使えて、 要らなくなったら捨てられるサーバー どこででもすぐ使えて、 要らなくなったら捨てられるサーバー できるんです。dockerならできるんです。dockerなら
  9. 9. 9 それってWordPressと関係あるの? • よくわかんないけどcore壊しました テヘペロ • 気が付いたらディレクトリがゴミだらけに なっていたぜ…言っていることがよくわから ねーと思うが、とにかく今さら掃除もでき ねーぜ… • なんか作るのにWordPressの環境構築す るのめんどくさい。もう何もかもめんどくさ い… WordPress あるあるネタ WordPress あるあるネタ
  10. 10. 10 WordPressのインフラ作っちゃえば? dockerでWordPressの動くコンテナをつくるdockerでWordPressの動くコンテナをつくる WordPressを使いたくなったらDockerでWordPressを使いたくなったらDockerで 壊したり飽きたら捨てて、新しいコンテナを利用壊したり飽きたら捨てて、新しいコンテナを利用 とにかくImm…みたいに使いまわせるよ!とにかくImm…みたいに使いまわせるよ!
  11. 11. 11 WordPressのDockerfileを作ろう! • ポイント ‒ DockerfileでWordPressを自動インストール するために「wp-cli」を使う •http://wp-cli.org/ ‒ Apache・MySQLと複数のデーモンを動かす ので「supervisord」を使う
  12. 12. 12 こんなDockerfileでWordPressコンテナ! FROM centos RUN yum install -y httpd php php-mbstring mysql-server mysql mysql-devel php-mysql python- setuptools RUN easy_install supervisor RUN mkdir -p /var/log/supervisor ADD supervisord.conf /etc/supervisord.conf RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && ¥ chmod +x wp-cli.phar && ¥ mv wp-cli.phar /usr/local/bin/wp RUN echo "NETWORKING=yes" > /etc/sysconfig/network RUN service mysqld start && ¥ mysqladmin -u root password password && ¥ mysql -u root -ppassword ¥ -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8; ¥ grant all privileges on wordpress.* to wordpress@localhost identified by 'wordpress';" && ¥ cd /var/www/html && ¥ wp core download --locale=ja && ¥ wp core config --dbname=wordpress --dbuser=wordpress ¥ --dbpass=wordpress --dbhost=localhost --locale=ja && ¥ wp core install ¥ --url=http://example.com --title=example ¥ --admin_name=example --admin_email=example@example.com --admin_password=password CMD ["/usr/bin/supervisord"]
  13. 13. 13 付属品:supervisord.conf [supervisord] http_port=/var/tmp/supervisor.sock logfile=/var/log/supervisor/supervisord.log logfile_maxbytes=50MB logfile_backups=10 loglevel=info pidfile=/var/run/supervisord.pid nodaemon=true minfds=1024 minprocs=200 [supervisorctl] serverurl=unix:///var/tmp/supervisor.sock [program:httpd] command=/usr/sbin/httpd -D FOREGROUND [program:mysqld] command=/usr/bin/mysqld_safe
  14. 14. 14 こんなふうに使うよ! ビルドしてから… # docker build -t wordpress ~/docker/wordpress コンテナを起動! # docker run -p 80:80 -d wordpress dockerの環境と さっきのDockerfileさえあれば、 どこでも 「WordPress使い捨て環境」 ができる!
  15. 15. 15 …すみません。もうありました • 実際にはこんなめんどくさい設定をしなくても、 dockerでWordPressは試せる • dockerではいろんなソフトが入った「イメージ」 (ディスクみたいな感じ)も提供されている • WordPress入りのイメージも提供されている • 試すだけならDockerfileから書く必要はない
  16. 16. 16 宿題 • 「あれ? コンテナ終了させたらWordPressのコ ンテンツが消える!」 • 対応方法 ‒ コンテナ終了時にデータを消さない方法もある ‒ コンテナのディレクトリを親サーバーのディレク トリにマウントする方法もある ‒ そもそもコンテンツはネットワーク越しに別のサ ーバー上に置いたら?
  17. 17. 17 遠くない未来予想図 docker盛り上がる(少なくとも開発畑では)docker盛り上がる(少なくとも開発畑では) コンテナ型のサービスが一般化していくコンテナ型のサービスが一般化していく WordPressのサ(おや?誰かきたようだ…)WordPressのサ(おや?誰かきたようだ…)
  18. 18. ご清聴 ありがとう ございました! 18

×