我在 2015 年~2017 年間,開了 8 次【Docker 建置實戰講堂】一日課程。在那個大眾對於 Docker 還矇矇懂懂的年代,我就堅持不用貌似較簡便的 Docker Desktop,而是大膽採用 Vagrant + VirtualBox 作為統一的授課環境,讓學員儘早習慣在 Linux 平台上探索 Docker 的底層與應用。
所以,當我在 2022 年 iThome 鐵人賽看到小賴的參賽作品【那些關於 docker 你知道與不知道的事】中,是以 AWS EC2 的 Ubuntu instance 作為實作環境,現在更出版新書《Docker 實戰 6 堂課:56 個實驗動手做,掌握 Linux 容器核心技術》,就非常高興。畢竟,從最擬真的角度切入,才能夠透過自己的雙手,掌握那不變的容器技術核心。
很多人會問:現在都已經是 Kubernetes 當道的年代,我們還需要學習落伍的 Docker 嗎?還需要用這麼刻苦的方法學習落伍的 Docker 嗎?
既然 Kubernetes 正當紅,我們就從功利一點的角度來看這議題吧。Kubernetes 的三大認證考試 (CKA, CKAD, CKS) 中,不乏一堆上機實境題;如果你不懂得容器的底層技術:process、layer、namespace、network,將很難在現場上機時迅速精準排除問題——而且是用最傳統的終端機命令列方式進行。
既然這麼當紅的 Kubernetes 都要求你必須熟練這麼刻苦的方式,那麼,你為什麼不先從較單純的 Docker 容器環境下手呢?
小賴這本書有三大特點:底層知識,動手實驗,熱血工程魂。
特色一 :底層知識
容器世界有許多神奇的特效,尤其是不同對象、不同層次的「資源隔離性」。透過本書,你可以親自看到 process、layer、namespace、network 這些磚頭是如何一步步撐起容器的華廈。
掌握這些「資源隔離性」的基礎知識,將來再看到 Kubernetes 的種種設計,必有會心一笑的熟悉感。
特色二:動手實驗
底層知識很枯燥,甚至抽象。透過動手實作,能具體看到這些要素活生生運作起來,而不是一堆死板板要你生吞硬背的理論。
作者以 AWS EC2 的 Linux instance 作為實驗環境,比起多數人採用 Windows 或 Mac 的 Docker Desktop 作為實驗環境,更能忠實反映容器的 行為及底層狀況。更重要的是,及早領略在這種環境之下的操作及除錯經驗,未來在真實生產環境之下的操作、性能調教、除錯任務,自然駕輕就熟。
正如小賴所說:「親自動手做實驗與觀察,應該是工程師最基本的素養。」
特色三:熱血工程魂
由 Docker 起頭,至 Kubernetes 發揚光大,容器生態圈的技術,雖然貌似複雜,但藉由生態圈的卓越工藝,已經將複雜技術下放到凡間,只要你有心,都可以在本機端或雲端建置出堪用的實驗環境供你探索。
剩下的問題就是:你是否保有熱血工程魂?
我很喜歡小賴講的這段話:「那種『知道更多了』的感覺,根本就是工程師的鴉片,讓人難以抵抗。」
容器生態圈蓬勃發展,我們更需要小賴這本書,帶我們透過自己的雙手,掌握那不變的容器技術核心。希望大家藉由這本書,拾起熱血工程魂,重視底層知識,樂於動手實驗,在容器世界游刃有餘。
—— 敏捷魔藥師 葉秉哲 (William Yeh) 2023-08-19