脳内ライブラリ

学んだこと、考えたことをつらつらと書いています。本の感想(ビジネス本、漫画)と生活改善系が多めです。

Dockerのまとめ。そのいち

Dockerについて概要を理解するための簡単なまとめ。そのいち。
もうちょっとまとめたら使ってみたい。

Dockerとは?

サーバ管理ツール。Immutable Infrastructureの考え方に沿ったツール。
サーバ上に独立したOS環境を作成したり、削除したりすることができる。
OS環境は保存したり、移行したりすること可能で柔軟なサーバの構成が出来る。
Dockerは、LXC(Linux Container)というLinuxの技術を利用している。

LXC(Linux Container)

一つのホスト上で、複数のLinuxシステム(コンテナという)を実行するOS仮想化ソフトウェア。
既存のサーバ仮想化の分類にはいくつかあるが、LXCはコンテナ型仮想化という形式をとっている。
コンテナ型仮想化は、カーネルの機能によって、複数のユーザ空間(ユーザープロセス、アプリケーションを実行する空間)を作り出す。
それによって、ユーザプロセスから見えるリソースを分割する。
リソースの分割方法は、そのリソースによって異なる。

通常の仮想化していない空間では、ひとつのカーネル空間(物理リソースを管理する)とユーザ空間を持つ。
コンテナ型仮想化では、ひとつのカーネル空間に対して、独立したユーザ空間が複数乗っているイメージ。

既存の仮想化分類(参考)
  • ハードウェアによる仮想化
  • ソフトウェアによる仮想化1
    • 物理マシン上に直接ハイパーバイザーをのせて、その上にゲストOSが動く。
  • ソフトウェアによる仮想化2
    • 物理マシン上にホストOSが動いており、そのOSがハイパーバイザー機能を持つ
    • その、ハイパーバイザーの上でゲストOSが動く

コンテナという考え方

Dockerのコンテナという考え方は、環境自体を移動可能、どこの環境でも動かせるようなコンテナという捉え方。
実際のコンテナである、アプリケーションコンテナには、以下の内容が含まれている。

  • OS環境
  • ミドルウェア一式、その設定
  • コンテナの起動時に実行するシェル
  • 外部に公開するポート番号

アプリケーションコンテナの設定情報は、Dockerfileに記述してビルドする。

特徴

軽量である。
理由としては、仮想化の形が型仮想化?という形式で実現しているため?
1つのプロセスとして動き、オーバヘッドを少なくする。

また、AUFS(AnotherUniosFS)という形式で差分を保存しているため、
仮想マシン立ち上げ時にイメージをコピーすることが必要ないため、高速に起動できる。

AUFS(AnotherUniosFS)とは?

UnonFSという、ディレクトリを重ねあわせることが出来る実装の一つ。
元の仮想マシンのイメージを書き換えず、更新が発生した部分を別の場所に書き込む。

基本的には、CDやDVDから起動するLinuxディストリビューション(ライブ版Linux)で採用されることが多い様子。
AUFSを利用すると、擬似的にファイルを光学メディアに書き込むことが出来る。
仕組みとしては、今までライブ版Linuxでは、光学メディアから起動して利用できるが書き込みができなかった。

AUFSを利用すると、光学メディアに書き込む内容をメインメモリに保存し、追加変更があったファイルを読み出す時はメインメモリ上に保存されたファイルを読み込む。
元の光学メディアには変更はないが、差分部分だけを管理して元のデータにかぶせて利用が出来る。

参考URLなど

15分で分か(った気になれ)るDocker
http://www.slideshare.net/nekoruri/20140328-docker-15min

仮想環境構築に docker を使う - apatheia.info
http://apatheia.info/blog/2013/06/17/docker/

Linuxキーワード - AUFS とは:ITpro
http://itpro.nikkeibp.co.jp/article/Keyword/20090209/324482/

LXC - Wikipedia
http://ja.wikipedia.org/wiki/LXC

Lxc で始めるケチケチ仮想化生活?!
http://www.slideshare.net/enakai/lxc-8300191

第226回 LXCで軽量仮想環境の活用:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0226

これから始める「DockerでかんたんLAMP環境 for CentOS」 - さくらのナレッジ
http://knowledge.sakura.ad.jp/tech/1811/

広告を非表示にする