昨夜、400人あまりの参加希望がある中で、運良く参加者枠に滑り込めた「Docker Meetup Tokyo #2 」へ行ってきました。 遅刻してしまい、19:15頃からの内容のみではありますが、せっかくですので、ノートを残しておこうと思います。

概要

  • 2014-04-11 @ Google Japan
タイムテーブル

18:30 開場
19:00-19:30 @mainyaa:今からでも間に合うDocker基礎+Docker 0.9概要+Docker 0.10概要
19:30-20:00 @ten_forward:Linuxカーネルのコンテナ関連機能入門
20:00-20:30 @naoya_ito:Dockerアプリケーションのポータビリティ

20:30-21:00 休憩&懇親タイム(ビール&ピザ)

21:00-22:00 LT(1人5分)
@inokara:コンテナ内で複数のサービスを管理する試み
@smokeymonkey:Docker +serverspecで作るconfigspec CI
@takipone:Docker meets AWS OpsWorks
@futoase:Aiming解析チームでのDockerの利用
@syoyo:GCE+Docker+etcdでレイトレ
@kazunori_279:Dockerなら5分!Fluentd + Norikra + Google Spreadsheetでつくるリアルタイム・ダッシュボード
@deeeet:Dockerによるアプリケーションの開発/デプロイ
@DG0426:Docker地雷n本勝負
@jxta:Data Center to Distributed Cloud

@mainyaa:今からでも間に合うDocker基礎+Docker 0.9概要+Docker 0.10概要

  • Dockerfile
    • P.16
    • Dockerfileの一部を変えても、成功部分は実行しないため、テ ストやCIが非常に高速になる
  • AUFS
    • P.18
    • 親のOSイメージは共有できる→ハイパーバイザー型に比べて有利
  • Copy on write
    • 差分が出るまでは書き込みが出ないから、省メモリ・省ディスク。
  • 制約
    • P.25
    • まだまだProductionでは難しいと思う。
    • (とはいえ、興味深いですよね。)
  • Docker 0.9
    • P.29
    • できたてほやほや
    • Execution driver – 足回りが抽象化されている LXC必須ではなくなった
  • Docker 0.10
    • P.30
    • おととい出た
    • 企画〜発表まで、バージョンが2あがってるwww
    • systemdサポートなどなど
  • Docker 1.0に向けて
    • P.31
    • Production 品質を目標とする
    • 商用サポートの実現

@ten_forward:Linuxカーネルのコンテナ関連機能入門

 

  • 明日は大阪で勉強会www
  • rpmbuildするときに、クリーンな環境でビルドする際に使ってる。なるほどそれはいい。
  • メリット
    • 高密度で起動する事ができる。オーバーヘッドが小さいメリットがここに出る。
    • 起動が速い。プロセス上がるだけ。
      • 仮想化、というより隔離化。
  • デメリット
    • Linux以外ダメ。Linuxのカーネルの上で動いているから、ね。
    • Kernelに関わる操作は制限される。ホストのカーネルを借りているから、ね。
  • Linuxカーネルバージョンとコンテナ
    • P.15
    • 3.12.8以前だとLXCに若干問題アリって、相当新しいカーネルが要求される…
  • Namespace の種類
    • P.17
    • コンテナの肝は Namespace
    • PID namespace: 親から子のPIDは見える。すなわち、親のPID空間を使ってる。
      • しかし、これだと子から親のプロセスを止められる。おそろしや。UbuntuとかだとAppArmorで押さえ込んでたけど、やばいね。
      • See also: http://d.hatena.ne.jp/defiant/20131011/1381487129
    • P.18 ぐらいから、親と子を隔離する仕組みが整えられた。IPC, User, Network Namespace。
  • Dockerでもcgroupを活用して、リソースを絞り込む事が出来る。
    • P.21
    • このあたりはcgroupsの基本的な話が分かっていれば大丈夫そうだ。
    • Dockerであがっているプロセス丸ごと絞れるので、直接プロセスを制御するより楽でいいかもしれない。
  • LXCとlibvirtは、実装は全然別です!!!
  • LXC 1.0
    • P.26
    • ひっちゃかめっちゃかになっていた部分を、きちんと整理している。特にCLIツール。
    • Ubuntu 14.04に乗っけるためにあわせてきている。
    • ドキュメントも整備されてきている。日本語のMan Pageもついてきた。今は英日のみ。
    • CentOS テンプレートも出来たよ!!!
  • 日本語ドキュメント 査読者大募集中!!!

@naoya_ito:Dockerアプリケーションのポータビリティ

 

  • 2つの文脈
    • P.2
    • Dockerコンテナが下層を抽象化する – 今日はここを掘り下げて行く
    • Disposableな制約によりアプリケーションの再現可能性が要求される
  • Jira
    • P.6
    • https://www.atlassian.com/ja/software/jira
    • Dockerイメージをあげておけば、インストール方法がわからなくてもイメージをそのまま採用してもらえばいい。
    • 某言語のWriteなんとかよりは…現実的だね。(Disってないよ!)
  • もう一つのポータビリティ
  • The Twelve-Factor App

その他

  • 様々な分野の、アンテナが高い人がドンと集まってきた感じがする。
  • LTもみんなアツかった。この後、じっくりスライドを読み直す。
  • GCP $500クーポンを頂戴した。
  • @inokara さんが、あのネタで本当に1年戦っていて驚いた。
  • Togetter: Docker Meetup Tokyo #2 #dockerjp

おわりに

  • ハイパーバイザー型とは違い、コンテナ型はCopy on Writeを通じて計算機資源を有効利用できる点がポイント高い。
  • cgroupsを活用したリソースの絞り込みは、もっと積極的に使ってもいいかも。
  • 現段階では、クリーンな開発・テスト・ビルド環境の構築で活用するのがよさそう。プロダクション環境への適用は、引き続き調査を続けよう。
  • とはいえ、内容が非常に濃かった。これをすぐ全部理解するのはかなり難しそうなので、掘りたい所から掘って行こうと思う。
  • AS/400にはLPARがあったのに、どうしてDockerが出た時にこんなに持ち上がっているのか、ちょっと興味がある。

ご挨拶させていただいた皆様、及び幹事の皆様、どうもありがとうございました。そして、お楽しみ様でした!