主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Dockerってなにさ

                
tags: Docker
 Dockerが昨年は話題になることが多く、MSの次期OSも対応を約束されたりで、盛り上がりを見せていた。ついには昨年末にTravis CIでもDocker導入があり、それによってぼくも間接的にではあるがDockerに触れることとなった。ここらでDockerってなんなのかを調べておく。
参考:http://www.atmarkit.co.jp/ait/articles/1405/16/news032.html

 調べる前にあったDockerのイメージとして、仮想化の話題に出てくるのを知っていたので、VMWarePlayerのような仮想マシンで動かすと便利なOSでも新しく出てきたんかなと思っていた。実際はそのVMWarePlayerと異なる仮想化技術を提供してくれるソフトだった。

 VMWarePlayerでの仮想化は仮想化に使うソフトが対応していればゲストOSはなんでも動かせる。ホストOSで動くソフトの中で新たにゲストOSが読み込まれる。
 Dockerはそうではない。ホストOSで使われているLinuxカーネルを被仮想化側で拝借する。丸々新たなOSを立ち上げるのではなく、すでに動いているOSとカーネルが同じものを仮想化された環境として用意する。だからコンピュータの消費リソースを抑えることができる。一方でホストOSによる仮想環境の制限がかかっていることになるので、VMWarePlayerのようなどんなホストOSでもどんなゲストOSを動かせるという柔軟さが基本的にはない。

 どんなところで役立つか。
 ぼくがDockerに初めて触れたのがTravis CIというアプリケーションのビルドテストを行ってくれるサービスを通してだった。アプリケーションのビルドテストは必要最低限のものがインストールされたプレーンな環境で行われるべきだろう。あとでユーザの環境にインストールされるときにあれが入ってないからビルドできなかったとかならないためにも。そこで考え付くプレーンな環境の準備方法としてはVMWarePlayerのようなものを立ち上げてゲストOSを起動する方法があった。ただ一つのOSの起動を待つのはそこそこ時間がかかる。そこですでに立ち上がっているOSのカーネルを利用するDockerならプレーンな環境を手っ取り早く用意できるだろうという話。
 その他Dockerの提供する機能で環境構成をテキストファイルに任せることができる。

 Dockerを使えばコンテナ型とされる仮想化によって手軽にホストから隔離された環境を用意できる。従来多く使われていたVMWarePlayerやVirtualBoxのようなどんなホストでもどんなゲストを動かすという柔軟さはないが、代わりにホストからのカーネルの拝借で手っ取り早く仮想環境を用意できるという手軽さである。Linux Mint上でDockerを使ってUbuntuを立ち上げてみたところ問題なく動いた(Mintの出自を考えると当然かもしれないが)。とりあえずどんなものか基礎的な部分はわかったので、今後は利用例を探ったり考えたりしたい。
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。