Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dockerで楽しむ自宅サーバ

5,917 views

Published on

「づや会 vol2 ~Dockerの話~」登壇時の資料です。自宅サーバをVagrantやDockerでイミュータブル化した話を中心に、Vagrant・CoreOS・Dockerを紹介した内容です。

スライド内で紹介しているデモファイル:
vagrant-coreos-docker-demo
http://media-massage.net/works/project/vagrant-coreos-docker-demo/

づや会 vol2 ~Dockerの話~
http://lig.connpass.com/event/25491/

Published in: Software

Dockerで楽しむ自宅サーバ

  1. 1. Dockerで楽しむ P R E S E N T A T I O N : フロントエンドエンジニア 堀祐磨 (ホリデー) 自宅サーバ
  2. 2. 自己紹介 堀 祐磨 (ほりでー) 1988年生まれ。多摩美術大学を中退後、 デザイナーとしてグラフィックデザイン・ Webデザイン・UIデザインを経験。 2015年、株式会社LIGにフロントエン ドエンジニアとして入社。
  3. 3. 自宅サーバって楽しい!
  4. 4. Redmine
  5. 5. タスク管理
  6. 6. ブックマーク 管理
  7. 7. 便利
  8. 8. Gitbucket
  9. 9. オレオレプライベートリポジトリ
  10. 10. めっちゃ高機能
  11. 11. 便利
  12. 12. ResourceSpace
  13. 13. 購入したストックフォトや収集したデザイン資料の管理
  14. 14. 12000件・26GBのデータを横断的に管理!
  15. 15. 便利!
  16. 16. とはいえ…
  17. 17. インストールが
 超面倒
  18. 18. バックアップ面倒
  19. 19. マシンの移行とか OSのアップデート で壊れて入れ直す のが面倒
  20. 20. もっと楽にしたいなぁ
  21. 21. たまたま読んだ 『サーバ/インフラ徹底攻略』 http://www.amazon.co.jp/ dp/4774167681/ @2015年2月∼
  22. 22. Immutable Infrastructure?
  23. 23. イミュータブル・インフラ ストラクチャー サーバの設定が全部設定ファイル化されてる 設定ファイルの通りに自動で構成される 自動でいつでも作れるから、サーバは
 いつ消してもOK chef・Vagrant・Dockerとかその辺り
  24. 24. めっちゃ便利じゃん!
  25. 25. つくってみた
  26. 26. ぼくがかんがえたさいきょう の自宅サーバ ハード:Mac mini Server(mid 2011) ホストOS: OSX Server 10.10.5 仮想マシン環境:Vagrant + VirtualBox Linux環境(Dockerホスト): CoreOS アプリケーションはDockerで構成
  27. 27. Vagrant
  28. 28. Vagrant (+VirtualBox) VirtualBoxのAPIを使って仮想マシンの 設定を自動化したり、起動時に任意のシェ ルスクリプトを走らせたりできる MacOSXでLinux動かすのに必要 構文がruby
  29. 29. Vagrant (+VirtualBox) VirtualBoxのブリッジ接続+MACアドレス 固定で、LANのDHCPサーバからIPを固定 データ保存用の外部ディスクを作成し、仮 想マシンに接続 このあたりの書き方はVagrantと VirtualBoxのリファレンスを見てがんばる
  30. 30. CoreOS
  31. 31. CoreOS 大規模クラウドサービス向けLinuxディストリビュー ション DockerとかRocketがインストール済 余計なものは何もインストールできない 設定が1ファイルで済む(systemd) マウントやネットワーク設定はsystemdのリファ レンス見てがんばる
  32. 32. CoreOS なんでboot2Docker使わなかったの? →開発用っぽい感じが嫌だったから(適当)
  33. 33. Docker
  34. 34. 学習コストはちょっと高いかも…
  35. 35. • 今のところDockerはLinux上でしか動かない (近々Winも動く!?) • Dockerコンテナは軽量Linuxコンテナという仮想化技術 • Dockerコンテナはホストや他のコンテナから隔離された環境 • Dockerコンテナは仮想マシンというよりはプロセス • DockerコンテナはDockerイメージを実行したもの • Dockerイメージは変更履歴の差分を積み重ねた特殊なファイルシス テム • Dockerコンテナ上の変更も、元になるDockerコンテナの差分とし て扱われる • Dockerコンテナ上の差分は、Dockerコンテナを削除したら消える • Dockerコンテナはカジュアルに作ったり消したりする • DockerイメージはDockerfileで自作できる • 他人の作ったDockerイメージに、自分で差分を積み重ねてカスタマ イズできる • 1つのDockerコンテナが1つのアプリケーションを担い、複数コン テナが連携してサービスを構築する • DockerイメージはDockerHubからダウンロードする • 自分でDockerイメージのリポジトリを自作することもできる 前提として理解 する必要がある こと
  36. 36. • docker run
 オプション多くて覚えにくい!
 これさえやれば他は惰性でOK • docker ps • docker stop • docker rm • docker build • docker exec • docker cp 使い方を理解する必 要があるコマンド・ 構文 一回ひととおり使う と困らない • docker-compose up • docker-compose build • docker-compose ps • docker-compose stop • docker-compose rm 実際使うのはむしろ こっちでは
  37. 37. 時間がない人は
 docker-compose
 から入った方がむしろ楽
  38. 38. 単機能のコンテナが連携し合うのが dockerによるサービスの構築 MySQL
 コンテナ Redmine
 コンテナ 接続 ResourceSpace コンテナ 接続 dockerコマンド: コンテナ1つに対し て操作するコマンド docker-composeコマンド: 構成全体をまるっと操作するコマンド
  39. 39. docker-composeなら、 たったこれだけのコードでサーバが立つ!
  40. 40. http://qiita.com/y_hokkey/items/ 406b5a8c4bc15354d069
  41. 41. dockerコンテナにはデータを
 溜められない
  42. 42. docker run -v /data/mysql:/var/lib/mysql
  43. 43. OSXの場合、VirtualBoxの仮想 マシン上にデータ溜まっちゃう
  44. 44. OSXと仮想マシン間でファイル共 有するとパーミッション的に
 厳しい
  45. 45. DockerコンテナがImmutableで も、仮想マシンがImmutable じゃないと嬉しくない…
  46. 46. 永続化データは
 専用の外部ディスクに 外部ディスクは、なかった ら勝手に作成/あったら自 動的に仮想マシンと紐付け るようVagrantfileに記述 究極的にはこれだけバック アップすればOK!
  47. 47. http://qiita.com/y_hokkey/items/ 3dd0d8f20f9daadbbf0b
  48. 48. おみやげ
  49. 49. Immutableなら、OSXのどんな 環境でも動くはず!!
  50. 50. • パスワードとか書いてあるし • ネットワークインタフェース名がハード依存してた • ドメイン名とか外部のDNSに依存してた • なので… と思ったけど 簡易版のデモを作りました! 冒頭で紹介した3つのアプリ+αが入ってます
  51. 51. https://github.com/hokkey/vagrant- coreos-docker-demo
  52. 52. 最後に宣伝
  53. 53. http://media-massage.net/ ブログ作りました! /
  54. 54. Thank you! http://media-massage.net/ 株式会社LIG フロントエンドエンジニア 堀 祐磨 (ほりでー)

×