Summary

Krystal reflects on why, despite three months of self-study and successfully deploying a project with Docker, she still enrolled in a Docker course. The answer: self-study produced working code without real understanding — she could copy-paste solutions but not diagnose errors or reason about behavior. The course filled the conceptual gaps by teaching Docker internals (process isolation, image layers, networking, volumes) through experiments rather than just commands.

Krystal 反思為何在三個月自學並成功部署 Docker 後,仍然報名了一門 Docker 課程。答案是:自學產生了能跑的程式碼但沒有真正的理解——她能複製解法但無法診斷錯誤或推理行為。課程透過實驗而非只教指令,填補了 Docker 內部原理(process 隔離、image 層、網路、volume)的概念空白。

Key Points

  • Self-study enabled deployment but not understanding — “worked by accident” is a fragile foundation
  • Container isolation rooted in Linux process concepts (PID 1 importance explained)
  • Image layers: each layer is read-only; changes are recorded as additional layers on top
  • Docker networking: fundamentally different from host networking; container networks are virtual
  • Dockerfile mental model: “imagine starting from a blank machine — what would you do first?”
  • The gap between “can use” and “can understand” is the difference between a script-follower and a problem-solver

Insights

The “why does it work” question is the key differentiator between fragile and robust Docker knowledge. Understanding that images are read-only and containers record deltas explains caching behavior, layer optimization, and why RUN apt-get update && apt-get install should be combined in one layer. The PID 1 insight explains why containers exit when the main process exits — a common source of confusion for beginners.

Connections

Raw Excerpt

寫 Dockerfile,不是打開編輯器就開始寫,而是要先想:假設我現在進到一台空白的機器,要啟動專案,第一步該做什麼?