投稿

5月, 2014の投稿を表示しています

Dockerを使ってみました。

Dockerを使って見ました。 ちょっとまえにもさわったことがあるのですが、最近流行りのDockerをつかってみました。Dockerとはコンテナタイプの仮想環境に独自の機能を組み合わせて使いやすく便利にしたもののようです。  コンテナタイプ kvmといったいわゆる仮想マシンのようにまるごと物理マシンをエミュレーションした環境を用意するのではく、ネットワークやプロセスIDなどのみが独立した環境(コンテナ)を用意してその中でプロセスを実行するタイプの仮想環境です。仮想マシンと比較すると圧倒的に軽い(ホストに対する負荷が低い)のが特徴みたいです。 最近またバージョンがあがってDockerの最新版は0.10のようです。 Dorkerに必要なもの カーネル Linuxでコンテナ機能を利用するためにはカーネルが以下の機能をサポートしている必要があります。 Namespace(名前空間) Cgroups Namespace ネットワークやプロセスID、ユーザIDなどについてそれらが独立した環境を用意するカーネルの機能です。 Cgroups プロセスにが利用できるリソース(CPUの数やメモリの量)を制限するカーネルの機能です。  それぞれかなり前のバージョンから一部はサポートされていましたが、Dockerを使うためには必要なすべて機能がそろった3.8以降のカーネルが必要です。   もちろん、カーネルコンフィグで機能が有効になっている必要があります。 以下の2つはちょっと前までは必要だったのですが、最新バージョンでは必要でなくなったものです。 Aufsファイルシステム Dokerはコンテナのイメージ(ディレクトリツリー)を格納するのにaufsを利用していましたが、aufsは標準カーネルにマージされていないので、利用するためにはパッチをカーネルにあてる必要がありました。そのためDockerはディストリビューションの標準カーネルでは動かないケースがあり、パッケージとしても提供されていないディストリビューションもあったようです。 ubuntuなどはaufsパッチの当たっているカーネルを採用していて、パッケージとしてもDockerが提供されていました。 最近(といってもちょっと前ですが)aufsが必須ではなくなり、デ