コンテナ・Kubernetesとは?OSのカーネルを共有して動く軽量な仮想化

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

コンテナとは(全体像)

コンテナは、アプリを動かす環境を、軽くひとまとめにして持ち運べるようにするしくみのこと。OSの土台(カーネル)を共有して動くので、とても軽い。

身近にたとえると、マンションとシェアハウスの違いだ。仮想マシン(VM)はマンションで、各部屋がキッチンも風呂もまるごと持つ(OSをまるごと持つ)ので独立だが重い。コンテナはシェアハウスで、キッチンや風呂(OSのカーネル)をみんなで共有し、個室(アプリ)だけ分ける。だから軽くて速い。

押さえるのは、コンテナはOSのカーネルを共有する軽量な仮想化だということ。VMとは別のしくみだ。


詳しく:VMとの違いとDocker・K8sの役割だけ覚えれば戦える

ここが記事の心臓部。まずコンテナとVMを比べましょう。

コンテナとVMの違い

方式OSの持ち方重さ起動
VM(仮想マシン)OSをまるごと持つ重い(GB単位)数秒
コンテナOS(カーネル)を共有軽い(MB単位)とても速い

VMは部屋ごとにOSをまるごと持つので独立性が高いが重い。コンテナはOSのカーネルを共有するので、サイズが小さく、起動も速い。「コンテナ=完全なOSを持つ」というのは誤りで、ホストとカーネルを共有しています。

次に、DockerKubernetes。名前が並んで出てくるので混同しやすいですが、役割がまったく違います。

DockerとKubernetesの役割

道具役割たとえ
Dockerコンテナを作って動かすエンジン1軒の家を建てて住む
Kubernetes(K8s)たくさんのコンテナをまとめて運用する多くの家を運営する管理会社

Dockerはコンテナを1つずつ作って動かす道具で、設計図(Dockerfile)からイメージを作り、コンテナを起動します。Kubernetes(K8s)は、たくさんのコンテナを大規模に運用する指揮者で、自動復旧や台数の自動調整(スケーリング)をしてくれます。「Docker=Kubernetes」は誤りで、エンジンと指揮者という別の層です。

K8sの最小単位はPodで、1つ以上のコンテナをまとめたものです。

わかりやすく言い換えると

要するに、シェアハウスのたとえで覚えるとラクです。

コンテナ … シェアハウス(カーネルを共有・軽い・速い)。VMはマンション(まるごと持つ・重い)

Docker … 1軒を建てて住む道具(コンテナを作って動かす)

Kubernetes … 多くの家を運営する管理会社(大量のコンテナをまとめて運用・最小単位はPod)

つまり、「コンテナは共有で軽い」「Dockerはエンジン・K8sは指揮者」、この2点を押さえれば迷いません。


試験のツボ

🔴 一番出る:コンテナとVMの違い

①コンテナ = OS(カーネル)を共有・軽い・起動が速い

②VM = OSをまるごと持つ・重い・起動は数秒

🔴 次に出る:DockerとK8sの役割分担

①Docker = コンテナを作って動かすエンジン

②Kubernetes(K8s) = たくさんのコンテナをまとめて運用する指揮者

🟡 押さえると安定:K8sのPod

①PodはコンテナをまとめたK8sの最小単位(1つ以上のコンテナ)

②K8sは自動復旧やスケーリング(台数の自動調整)を行う


よくある間違い

「コンテナは完全なOSを持つ」→ ✗  コンテナはホストとOS(カーネル)を共有する軽量な仮想化。まるごと持つのはVM。

「DockerとKubernetesは同じもの」→ ✗  Dockerはコンテナを動かすエンジン、K8sはたくさんのコンテナをまとめる指揮者。役割が違う。

「コンテナはVMより重く起動も遅い」→ ✗  コンテナはカーネル共有で軽く、起動はVMより速い。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(コンテナとVM)

📝 オリジナル問題 1 コンテナとVMの違い

コンテナと仮想マシン(VM)に関する次の記述のうち、正しいものはどれか。

  1. コンテナはOSのカーネルを共有して軽く起動も速く、VMはOSをまるごと持ち重い方式だ
  2. コンテナはOSをまるごと持つ重い方式で、VMはカーネルを共有する軽い方式とされている
  3. コンテナもVMもまったく同じしくみで、重さや起動の速さに違いはないものとされているのだ
  4. コンテナもVMも紙に印刷する装置のことであり、仮想化とは無関係なものとされているものだ
テクマスター
テクマスター 解答・解説

解答は 1 ですよ。

コンテナはOSのカーネルを共有して軽く起動も速く、VMはOSをまるごと持ち重い方式ですね。シェアハウスとマンションの違いです。

選択肢2のコンテナとVMが逆、選択肢3の「同じしくみ」、選択肢4の「印刷装置」はどれも誤りですよ。

選択肢判定理由
1コンテナは共有で軽い・VMはまるごと持つ
2コンテナとVMの説明が逆
3重さも起動の速さも違う
4印刷装置ではない

オリジナル問題2(DockerとK8s)

📝 オリジナル問題 2 DockerとKubernetesの役割

DockerとKubernetes(K8s)に関する次の記述のうち、正しいものはどれか。

  1. DockerもK8sもまったく同じ道具で、役割や使う場面に違いはないものとされているものだ
  2. Dockerはたくさんのコンテナをまとめる指揮者で、K8sは1つを動かすエンジンとされている
  3. Dockerはコンテナを作って動かすエンジン、K8sはたくさんのコンテナをまとめる指揮者だ
  4. DockerもK8sもハードウェアの一種で、コンテナの運用には使えないものとされているものだ
テクマスター
テクマスター 解答・解説

解答は 3 ですよ。

Dockerはコンテナを作って動かすエンジン、K8sはたくさんのコンテナをまとめる指揮者ですね。役割がはっきり違います。

選択肢1の「同じ道具」、選択肢2のDockerとK8sが逆、選択肢4の「ハードウェア」はどれも誤りですよ。

選択肢判定理由
1役割が違う
2DockerとK8sの説明が逆
3Dockerはエンジン・K8sは指揮者
4ソフトウェアの技術

オリジナル問題3(K8sのPod)

📝 オリジナル問題 3 KubernetesのPod

KubernetesのPodに関する次の記述のうち、正しいものはどれか。

  1. Podは紙に印刷する装置のことで、コンテナの運用とは無関係なものとされているものだ
  2. Podは1つ以上のコンテナをまとめたKubernetesの最小単位で、運用の基本だ
  3. Podはハードウェアそのものを指す言葉で、ソフトウェアは含まないものとされているのだ
  4. Podは仮想マシンをまるごと持つ重い方式の別名で、起動に数分かかるものとされている
テクマスター
テクマスター 解答・解説

解答は 2 ですよ。

Podは1つ以上のコンテナをまとめたKubernetesの最小単位ですね。K8sはこのPodを単位に、自動復旧やスケーリングを行います。

選択肢1の「印刷する装置」、選択肢3の「ハードウェアそのもの」、選択肢4の「VMの別名」はどれも誤りですよ。

選択肢判定理由
1印刷装置ではない
2Podはコンテナをまとめた最小単位
3ソフトウェアの概念
4VMの別名ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る