in サーバー

Dockerのアレなところ

最近Dockerを知りました。最初話を聞いた時はKVMっぽい何かだと思ってましたが、
本を買ったり、資料を呼んでみたりしてこいつは違うな!と思うようになりました。

dockerとは

コンテナ型の仮想化で今までの、kvmやvmware、virtualboxなどのマシーンを仮想化し,その上にOSを走らせるのとは違い、
OSで走るプロセスだけを仮想化して実行するようなものです。

vm-docker
多分こんなイメージ

で実際はこのようにハーパーバイザーであれば仮想マシーンが、Dockerであればコンテナが複数動くわけです。
vm-docker2

dockerのメリット

じゃあ、Dockerのなにがいいの?って言うと、ハイパーバイザー型であれば仮想マシーンごとにOSが走って仮想マシーンを管理するために様々なプロセスが動いて、更に目的の動作の為のプロセスが複数走るわけですが、コンテナであれば、実際に動くのはコンテナ内で基本的に目的の1プロセスのみで余計なオーバーヘッドがないわけです。
コンテナの中には仮想マシーンと同じでOSをインストールした状態で弄り方も大体一緒です。

デメリットは?

普通に使う分には問題なんですが、少し変なことをしようとするとあれ?ってなる部分が多かったです。
一番はネットワークまわりです。
基本的に1コンテナで割り振られるネットワークインターフェースは1つです。無理やり動かせば2つにすることも可能ですが、コンテナ内の操作のみで収めることが出来ません。またコンテナ内でネットワークインターフェースの仮想化も出来ません。つまりkeepalivedなどの仮想IPを立ててfailoverする系のロードバランサーがコンテナの操作のみでは動きません。ようはネットワークに自由度があまりない感じです。

まとめ

コンテナでプロセス管理を出来る部分は素晴らしいです。オーバーヘッドが少なくいい感じだと思います。
しかし、ネットワークの自由度があれなのが残念でした。一応LXCでネットワークまわりを弄れることは弄れるらしいですがコレじゃない感。


Related Posts

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image