【VMとDockerの決定的な違い】
「Docker使ってます」と言いつつ、VMとの違いを構造で説明しようとすると意外とつまずく人、多いんじゃないでしょうか。
昨日レアテックの日常アカウントで出した「冷凍食品のたとえ」の裏側、技術的にはこういうことなんです。
VMは1アプリごとにGuest OSをまるごと起動します。
料理1品のためにキッチンを丸ごと1部屋建てるイメージ。
→ 数GB、起動に分単位。
一方Dockerは、Host OSを1つだけ共有して、コンテナでアプリだけを隔離する仕組み。
→ 数十MB、起動は秒。
図解を見てもらうとわかりやすいんですが、Docker側に「Guest OS 不要」の点線エリアがあるのがポイントです。
このレイヤーが丸ごと消えるから、同じサーバーでVMの倍以上のアプリを動かせるんですよね。
インフラに興味がある方は、この構造の違いを押さえておくと理解が一気に進むはずです。
ぜひ保存して見返してみてください!
「自分のPCでは動いたのに…」
原因不明のエラーに絶望した経験、ないですか?
これ、Dockerを知れば二度と起きなくなります。
仕組みはシンプル。
料理の「冷凍食品」と同じです。
レシピ通りに作って冷凍保存しておけば、
誰のキッチンで温めても同じ味が再現できる。
Dockerもこれと同様で、アプリを「環境ごとパッケージ」にして渡すから、どのPCでも同じように動くんです。
図解にまとめたので、気になる方はぜひ。
明日、仕組みの技術的な部分をもう少し深掘りします。
Dockerの中で何が起きているのか、気になりますか?