第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)
なので「まず動作確認に使う」にはちょうどいいんです😊✨
🧠 画面に出るメッセージの見どころ👀
だいたいこんな流れになります(ざっくり)👇
- ローカルに
hello-worldイメージが無ければ取りに行く(pull)📥 - イメージからコンテナを作る📦
- コンテナが実行される▶️
- メッセージを表示して終了✅
ここで「うおお動いた!!🎉」が出たら勝ちです🏆✨
6) “箱が増えた?”を観察してみよう🔍📋
Hello Worldはすぐ終了するので、今度は「停止済みコンテナも含めて」一覧を見ます👀
docker ps -a
docker ps→ “動いてるコンテナだけ”docker ps -a→ “止まってるのも全部”
「あ、実行した痕跡が残ってる!」が見えるはず😄✨
次に、イメージ一覧も見てみよう👇
docker images
ここで hello-world が見えたら、イメージがPC内に保存されています📦🧾
7) ミニ実験:コンテナを消しても、イメージは残る?🧪✨
まずコンテナ一覧で、hello-world の CONTAINER 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問クイズ🎓)
- イメージとコンテナ、どっちが“設計図”?🧾
docker runはイメージが無いとき何をしてくれる?📥docker ps -aは何を見る?📋- コンテナを消したら、イメージも消える?🗑️🧾
docker versionとdocker --versionの違いは?🧠
(答えは自分で言えたら勝ち🏆✨)
12) 今日のまとめ📌🎉
- イメージ🧾:アプリを動かすための“標準パッケージ”(設計図)(Docker Documentation)
- コンテナ📦:イメージから作って起動した“実体”(箱)
- コンテナには 書き込みレイヤー があって、消すとそこも消える(でもイメージは残る)🧅🧼(Docker Documentation)
docker run hello-worldで「動いた成功体験」できたら超えられた!🏆🐳(Docker Documentation)
次の章(第02章)では、Windows環境でつまずきやすいところを先に潰して「いつでも安定して動かせる」状態を作っていきます🪟🔧😄