Dockerが仮想マシンより爆速な理由
3分53秒 | Dockerコンテナ仮想環境
基本情報技術者試験の頻出テーマを解説した音声コンテンツです。
トランスクリプト(字幕テキスト)
今回はですね、開発環境に関する資料を一緒に深く掘り下げていきたいと思います。 テーマは昔ながらのバーチャルボックスみたいな仮想マシンと、今や主流のドッカー。 資料にあった「軽量爆速」っていう言葉の裏に何があるのか、その根本的な構造の違いを探っていきましょう。 資料の「家を丸ごと建てるのと家具付きの部屋を借りる」という例えが、まさにこの話の核心ですよね。 昔バーチャルボックスで環境を作るのに半日かかりました。本当に家を建てるみたいな壮大な感じでしたね。 では重厚な家、仮想マシンから見ましょう。重さの正体はハイパーバイザーという土台にあります。 その上にゲストOSをそっくりそのまま起動させているんです。つまりOSが丸ごと一つ動いてる状態です。 だから起動に時間がかかり、メモリも大きく消費します。起動時間を丸ごと含んでいるから重装備になるわけです。 一方、資料で「軽量爆速」とあったドッカーは、その重さをどうやってクリアしたのでしょうか。 ドッカーコンテナは、土台のホストOSの心臓部であるカーネルを共有しちゃうんです。 そのためOSを丸ごと起動する必要がなく、自分のアプリに必要な部品だけを詰め込めばいいんです。 だからシュバッと起動できる。必要な時に必要なだけパッと増やせる。OSの起動時間をすっ飛ばせるから早いんです。 この構造の違いは、学術的な視点でも重要です。ハイパーバイザー型とコンテナ型の違いは試験によく出ます。 そして現場の視点では、コンテナの「どこでも同じように動く」という特性が非常に強力です。 「自分のPCでは動いたのに本番環境では動かない」という開発者の悪夢を根本から解決してくれます。 この特性のおかげで、サービスの規模を自動で増減させたり、作業を自動化したりする現代的なシステムの基盤になっています。 重厚な家を建てるか、身軽な部屋を借りるか。これがVMとドッカーの本質的な違いです。 「一瞬で部屋を用意してすぐに片付けられる」という考え方が、現代のウェブサービスを根底から支えています。 普段使うアプリの裏側では、1秒間に何千何万という部屋を作っては壊しているかもしれない。 そう考えてみると、そのスケールの大きさがなんとなく感じられるのではないでしょうか。
このコンテンツは Web society で視聴・学習できます。