メインコンテンツまでスキップ

第01章:Dockerってなに?コンテナとイメージの感覚をつかむ🐳✨

この章は「難しい理屈」よりも、まず “手触り” を掴む回です😊🧤 1回でも「動いた〜!!🎉」を体験すると、その後の吸収が爆速になります🚀✨


🎯 この章のゴール(できたら勝ち🏆)

  • コンテナイメージ の違いを、自分の言葉で言える🙂📦🧾
  • Docker Desktop が動いているか確認できる👀✅
  • docker run hello-world が実行できる🎉🐳
  • 「今なにが起きたの?」をざっくり説明できる🧠✨

1) Dockerって結局なに?🐳

Dockerは、アプリを動かすための環境を「まるごとパック」して、どこでも同じように動かせる仕組みです📦🚀 ポイントは “アプリ+実行に必要なもの(ライブラリ・設定など)をひとまとめにできる” こと。 その「ひとまとめ」を支えるのが イメージコンテナ です🙂✨


2) コンテナとイメージ:いちばん大事な感覚📦🧾

🧾 イメージ = 設計図(レシピ)

  • アプリを動かすためのファイル・ライブラリ・設定などが入った パッケージ
  • 標準化された“実行セット” と思ってOK👌 Docker公式も「イメージは実行に必要なもの一式の標準パッケージ」と説明しています。(Docker Documentation)

📦 コンテナ = 設計図から作って動かした“箱”(実体)

  • イメージを元に 起動した実行インスタンス
  • 起動している(または停止して残っている)「動く環境」そのもの💨

3) もう一歩だけ深く:コンテナが“汚れても”イメージが汚れない理由🧼✨

Dockerでは、イメージは基本 変化しない(読み取り中心) で、コンテナ側に 書き込み用レイヤー が乗ります🧅 Docker公式ドキュメントでも「イメージとコンテナの大きな違いは、一番上にある 書き込み可能レイヤー」と説明されています。(Docker Documentation)

つまり…

  • イメージ:土台(変わらない)🧱
  • コンテナ:土台の上に「今日の作業メモ(書き込み)」を乗せたもの📝

そしてコンテナを消すと、その「作業メモ」部分も一緒に消えます🗑️(下のイメージは残る!)(Docker Documentation)


4) ハンズオン①:Dockerが動いてるか確認しよう👀✅

まずは「Docker Desktopが起動してるか」を確認します🐳🪟 次に ターミナル(VS CodeのターミナルでもOK)でこれ👇

docker version

docker version は Docker の各コンポーネントのバージョンを表示してくれます。(Docker Documentation) ここで Client だけじゃなく Server 側も出てくると「エンジン(Docker daemon)まで動いてる」可能性が高いです🙂👍

ちなみに docker --version は “CLIのバージョンだけ” を出します。docker version とは役割が違うよ〜😄 (Docker Documentation)


5) ハンズオン②:最初のコンテナを動かす🎉(Helloコンテナ)

いよいよ「動いた成功体験」いきます💪😆

docker run hello-world

✅ 何が起きるの?

docker run新しいコンテナを作って起動するコマンドで、必要なら 先にイメージをpull(取得) してくれます。(Docker Documentation)

hello-world は Dockerの 公式イメージ(Official Image) として提供されています。(Docker Hub) なので「まず動作確認に使う」にはちょうどいいんです😊✨

🧠 画面に出るメッセージの見どころ👀

だいたいこんな流れになります(ざっくり)👇

  1. ローカルに hello-world イメージが無ければ取りに行く(pull)📥
  2. イメージからコンテナを作る📦
  3. コンテナが実行される▶️
  4. メッセージを表示して終了✅

ここで「うおお動いた!!🎉」が出たら勝ちです🏆✨


6) “箱が増えた?”を観察してみよう🔍📋

Hello Worldはすぐ終了するので、今度は「停止済みコンテナも含めて」一覧を見ます👀

docker ps -a
  • docker ps → “動いてるコンテナだけ”
  • docker ps -a → “止まってるのも全部”

「あ、実行した痕跡が残ってる!」が見えるはず😄✨

次に、イメージ一覧も見てみよう👇

docker images

ここで hello-world が見えたら、イメージがPC内に保存されています📦🧾


7) ミニ実験:コンテナを消しても、イメージは残る?🧪✨

まずコンテナ一覧で、hello-worldCONTAINER ID を見つけます👀 そしてそのコンテナを削除👇(IDは自分のやつに置き換えてね)

docker rm <CONTAINER_ID>

削除できたら、もう一度👇

docker ps -a

→ コンテナが消えた!🗑️✨

でも、イメージは…?

docker images

hello-world のイメージが残ってるはず🙂✨

これがまさに 「コンテナ(実体)は消してOK」「イメージ(設計図)は残る」 の体感です👏😆

そしてこの「コンテナを消すと書き込みレイヤーも消える/イメージは残る」という考え方は、Dockerのレイヤー説明とも一致します。(Docker Documentation)


8) さらに“体感”する:一瞬で終わるコンテナを自作する⚡😆

次は軽量イメージで有名な alpine を使って、1行だけ表示して終わるコンテナを動かします🐣

docker run --rm alpine echo "Hello Alpine!"
  • --rm をつけると、終了したらコンテナを自動で片付けてくれます🧹✨
  • 「実行して終わる」タイプのコンテナもある、って感覚が掴めます😊

9) よくある詰まりポイント🪤😵‍💫(初心者あるある)

🧱 docker: command not found / コマンドが見つからない

  • Docker Desktop が入ってない・PATHが通ってない可能性
  • まずは Docker Desktop を起動してから再トライ🐳🪟

🛑 Cannot connect to the Docker daemon

  • Docker Engine(裏で動くやつ)が起動してないことが多い😵
  • Docker Desktop を開いて、起動完了まで待つ(クジラが落ち着くまで)🐳💤

🪟 WSL2まわりでコケる

Docker DesktopはWindowsで WSL2バックエンド を使う構成が一般的で、公式もWSL2の有効化や統合設定の手順を案内しています。(Docker Documentation) 状態確認として、WSLの一覧を見るコマンドがこれ👇

wsl.exe -l -v

ここでディストリビューションが VERSION 2 になってると安心感アップ😊 (もし違っても、この章では“そういう仕組みがある”くらいでOKだよ〜🙆‍♂️)


10) AI活用コーナー🤖✨(この章で強い使い方)

① 用語を「中学生にもわかる言い方」にする🧠📘

プロンプト例👇

  • 「Dockerの イメージコンテナ の違いを、中学生でも分かる例え話で3つ出して」
  • 「“イメージ=設計図、コンテナ=実体”の説明を、30秒で言える短い文章にして」

docker run hello-world の出力を貼って解説させる🔍

  • 「このログの各行が何を意味するか、初心者向けに箇条書きで説明して」
  • 「“結局いま何が起きた?”を1分で説明して」

③ 自分用チートシートを作る📄✨

  • 「第1章で使ったコマンドを、目的別(確認/実行/一覧/削除)に整理して」

11) 理解チェック✅(5問クイズ🎓)

  1. イメージとコンテナ、どっちが“設計図”?🧾
  2. docker run はイメージが無いとき何をしてくれる?📥
  3. docker ps -a は何を見る?📋
  4. コンテナを消したら、イメージも消える?🗑️🧾
  5. docker versiondocker --version の違いは?🧠

(答えは自分で言えたら勝ち🏆✨)


12) 今日のまとめ📌🎉

  • イメージ🧾:アプリを動かすための“標準パッケージ”(設計図)(Docker Documentation)
  • コンテナ📦:イメージから作って起動した“実体”(箱)
  • コンテナには 書き込みレイヤー があって、消すとそこも消える(でもイメージは残る)🧅🧼(Docker Documentation)
  • docker run hello-world で「動いた成功体験」できたら超えられた!🏆🐳(Docker Documentation)

次の章(第02章)では、Windows環境でつまずきやすいところを先に潰して「いつでも安定して動かせる」状態を作っていきます🪟🔧😄