今流行のLinux Container、Dockerについての勉強会がhbstudyで開催されたので参加してきました。
Linux Container自体はLXCなどが既に有りますが、いったい何がここまでDockerが持て囃されているのか、とても気になったので参加してみたのでした。
詳細について下記Togetterを見てください。
とりあえず自分が取れたメモ。
講師:Red Hat中井さん
Dockerの入門
・Fedora20とRHEL7とDockerの中身は同じ
・Container型
・仮想マシンの概念はない
・ベアメタルの場合はリソースプロセスが全て共通
・プロセスをグループごとに、違うプロセスを見せるDockerとは
Dockerがないとき、LibvirtによるContainerの作成が可能
→Container環境を作るのが大変だったContainerに見せるディレクトリを、仮想イメージとしてみせることができる。
イメージをインターネットに公開して、それを使用することができる。よっぽど特殊なカーネル依存のもので無い限りは動作する
カーネルモジュールはConflictする。
→デバドラ系はアウトRed HatとしてはRed Hatが動作確認したものだけをサポートします。
Docker専用のDistributionを作ろう
→Red Hatも開発している
→カーネル依存の問題に当たらなくなるDockerサービスを起動しただけだと、外側だけのプロセスが起動する。
Dockerコマンドを実行することで、裏側で良しなにContainerを作ってくれる。Containerから外へ出て行くには、iptablesのmasqueradeを使って出て行く
Containerの最初のプロセスが終了すると、Dockerはそのまま終了する。
Docker commit Container名 自由な名称で保存が可能
アプリ導入済みのDockerイメージを使用する場合
Dockerfileという形式でメタデータを使用して使うことが可能RHEL/Fedoraにはsystemctlに専用のコマンドが用意されている
cgroup連携もする。
DockerはDocker fileを作成することで、環境をテンプレート化することが出来るのが大きなメリットでしょうか。
反面あまり多機能では無いので、あくまでも環境を揃えて簡単にデプロイできるだけという感じでしょうか。どうやらDockerの開発者もシンプルにするのが今のところの方針のようです。
まぁなんにせよ、テスト環境程度であれば複数回作るものを手で作りこまなくても、Docker fileさえ作っておけば(もしくはDocker Hubに登録しておけば)、容易に環境が用意できるので非常に有用なツールだと思います。
当日使用された資料は以下になります。