Docker | 2週間で実務レベルに到達するDocker学習:Dockerの全体理解と導入 - Day1

Docker Docker
スポンサーリンク

Dockerの仕組みをもう一段深く理解する(中盤)

中盤では Docker の「仕組み」をもう一段深く理解し、コンテナとイメージの関係を“頭の中で正しく描ける状態”になることが目的です。


コンテナは「軽量な仮想環境」だが、仮想マシンとは違う

Dockerコンテナは、ホストOSのカーネルを共有しながら独立した環境として動く点が特徴です。
これは、ゲストOSを丸ごと起動する仮想マシン(VirtualBoxやVMware)とは根本的に異なります。
コンテナは OS 全体を持たないため、起動が高速で、リソース消費が少ないという利点があります。
この仕組みは、Dockerが「軽い」「速い」と言われる理由の核心です。


イメージは「レイヤー構造」でできている

レイヤーとは何か

Dockerイメージは、複数のレイヤーが積み重なった構造になっています。
各レイヤーは Dockerfile の命令(FROM、COPY、RUN など)に対応し、読み取り専用です。
例えば nginx イメージを調べると、OS層 → 設定層 → 実行コマンド層…といった形でレイヤーが積み上がっています。

レイヤー構造のメリット

レイヤー構造のおかげで、
同じ部分は再利用され、変更された部分だけ新しいレイヤーとして追加されるため、
イメージのビルドが高速化し、ストレージの節約にもつながります。
これは Docker が「効率的に環境を配布できる」理由のひとつです。


イメージとコンテナの関係を正しく理解する

イメージ=静的な設計図

イメージは読み取り専用で、アプリを動かすために必要な OS・ライブラリ・設定が含まれています。
これは「実行されない状態のパッケージ」です。

コンテナ=イメージから作られた実行環境

docker run を実行すると、イメージを元に書き込み可能なコンテナレイヤーが追加され、実行プロセスが立ち上がることでコンテナが誕生します。
つまり、イメージは静的、コンテナは動的という関係です。


hello-world の裏側で何が起きているのか

1. イメージの取得

docker run hello-world を実行すると、Dockerはまず Docker Hub から hello-world イメージを取得します。
(ローカルにない場合のみ)

2. コンテナの作成

取得したイメージに基づき、書き込み可能なレイヤーを追加してコンテナを生成します。

3. コンテナ内でプログラムを実行

hello-world イメージに含まれるプログラムが実行され、メッセージが表示されます。

この一連の流れで、
「イメージ → コンテナ → 実行」
というDockerの基本サイクルを体験できます。


中盤まとめ(ここまでで理解すべきこと)

  • Dockerは仮想マシンではなく、ホストOSのカーネルを共有する軽量な仮想化技術
  • イメージはレイヤー構造で効率的に管理される“設計図”
  • コンテナはイメージに書き込み可能レイヤーを追加した“実行環境”
  • hello-world は Docker の基本動作(pull → create → run)を体験する教材
Docker
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました