如何在筆電上建立 DevOps 實驗環境:免費工具設定步驟與配置要點

Published on: | Last updated:

嗯...今天要來聊聊一個最近很多人在問我的問題。就是啊,一堆朋友想學 DevOps,但看來看去,教學都叫你直接開 AWS、GCP 或 Azure 來玩。這就很尷尬,你知道嗎?

很多人,呃,我們就叫他小明好了,小明他就是這樣。理論課看了一堆,Docker、Kubernetes 這些名詞都會背了,但真的要動手,就卡住了。因為那些「免費方案」說真的,跟陷阱沒兩樣。誰知道哪天忘記關掉哪個服務,下個月帳單寄來就直接破產。真的很可怕。

他就問我:「難道沒有一個方法,可以在自己的筆電上,搞一個不用錢、不怕玩壞、甚至不用網路也能練習的環境嗎?」

嘿,當然有。

重點一句話

你可以用 Docker、Minikube/Kind、Vagrant 這些免費工具,在你的 Windows、Mac 或 Linux 筆電上,打造一個功能完整的個人 DevOps 實驗室,完全零成本,而且離線也能玩。

為什麼要在自己筆電上搞一個實驗室?

我自己是覺得,這樣做的好處真的太多了。首先,最爽的一點就是...完全免費!對,你沒聽錯,一毛錢都不用花。不用再提心吊膽怕收到雲端服務的驚喜帳單。

再來,它可以離線運作。你在高鐵上、在咖啡廳,網路訊號爛到爆?沒差,照樣練習。而且,因為所有東西都在你自己的電腦裡,所以根本不用擔心什麼資安問題,你可以隨便亂搞、盡情地把它玩壞。說真的,把東西玩壞再自己修好,才是學最快的方法,對吧?

還有啊,那個反應速度真的沒話說。在本機上啟動一個容器或虛擬機,就是幾秒鐘的事。不像在雲端,有時候光等一個資源跑起來,咖啡都涼了。

一個人在筆電上建構本地 DevOps 環境的概念圖
一個人在筆電上建構本地 DevOps 環境的概念圖

怎麼做?一步一步來

在開始之前,先確認一下你的裝備。你的筆電記憶體至少要個 8GB 吧,但說真的,16GB 跑起來會順很多啦。然後硬碟空間嘛...大概空出個 20GB 應該就夠了。不管你是用 Windows、macOS 還是 Linux 都行,但重點是你需要有管理員權限來安裝這些軟體。

第一步:打好地基,安裝 Docker

Docker 是整個實驗室的基礎。你可以把它想像成一個個標準化的「貨櫃」,把你的應用程式跟它需要的所有東西(程式碼、函式庫、設定檔)全部打包在一起。這樣不管你把這個貨櫃搬到哪台電腦上,它跑起來的樣子都會一模一樣。這就是所謂的「容器化」。

安裝過程其實蠻無腦的,基本上就是去官網下載、然後下一步下一步。

  • Windows 使用者:直接去 Docker 官網下載 Docker Desktop。安裝時它會問你要不要啟用 WSL 2 (Windows Subsystem for Linux),選「要」,這很重要。裝完重開機後,等右下角那個鯨魚圖示不動了,就代表好了。
  • Mac 使用者:一樣,去官網抓 Docker Desktop for Mac 的 .dmg 檔,拖到應用程式資料夾,打開,輸入密碼,等上面狀態列的鯨魚圖示不動,收工。
  • Linux 使用者:嗯... 你們應該很熟指令了,我就直接貼上來,照著跑一遍就行。主要是更新套件、加入 Docker 的 GPG 金鑰跟 repository,然後安裝。
# 這邊以 Ubuntu / Debian 為例
 sudo apt-get update
 sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
 sudo apt-get update
 sudo apt-get install -y docker-ce
 # 記得把自己加到 docker 群組,不然每次都要 sudo 很煩
 sudo usermod -aG docker $USER
 # 執行完要重新登入才會生效喔!

裝好之後,打開你的終端機(Windows 上叫命令提示字元或 PowerShell),打下面這行指令測試一下:

docker run hello-world

如果你看到螢幕上印出「Hello from Docker!」之類的訊息,恭喜你,第一步完成了!

第二步:你需要一個總指揮 - Kubernetes (K8s)

有了 Docker 貨櫃之後,如果數量一多,管理起來就很頭大。哪個貨櫃掛了要重啟?貨櫃之間怎麼溝通?這時候就需要 Kubernetes,大家習慣叫它 K8s。它就是管理成千上百個 Docker 貨櫃的總指揮官,一個容器的「交響樂團指揮」。

在筆電上跑 K8s,我們有兩個主流的選擇:Minikube 和 Kind。這兩個都很好用,但場景有點不一樣。

來聊聊 Kubernetes:該選 Minikube 還是 Kind?

這個問題...嗯...真的沒有標準答案,看你的需求。Minikube 比較像一個功能齊全的「迷你單機版」K8s,而 Kind 更輕量,它直接把 K8s 跑在 Docker 容器裡面。我自己是覺得,新手可以從 Minikube 開始,感覺比較直覺。我整理了一個簡單的比較表,讓你比較好決定。

比較項目 Minikube Kind (Kubernetes in Docker)
核心概念 它會在你的筆電裡開一個小小的虛擬機(VM),然後在那個 VM 裡面跑一個完整的 K8s 節點。比較像真實環境的縮小版。 超酷的想法!它直接用 Docker 容器來當作 K8s 的節點。所以你的 K8s 叢集,其實是跑在 Docker 裡的一堆容器。
適合誰 剛入門的新手。它的指令很直覺,還有內建的 Dashboard (儀表板),點幾下就能看到叢集狀態,很有成就感。 已經有點經驗,或是需要快速建立、銷毀多個測試叢集的開發者。特別適合用來測試 CI/CD 流程。
資源消耗 因為多了一層 VM,所以會稍微吃資源一點。不過現在可以用 docker driver,效能好很多。 相對輕量。啟動跟刪除都飛快,畢竟就只是在操作 Docker 容器而已。
一句話總結 功能完整的學習套件,適合想好好體驗 K8s 的人。 又快又輕的測試工具,適合把 K8s 當日常工具的人。

決定好了嗎?安裝其實也都很簡單。

如果你選 Minikube:

最簡單的方式就是用你系統的套件管理器,Mac 就用 brew install minikube。裝好之後,用下面這個指令啟動它,記得喔,我們指定用剛剛裝好的 Docker 來當驅動,這樣效能比較好。

minikube start --driver=docker

然後可以跑 minikube dashboard,它會自動用瀏覽器打開一個超酷的儀表板!

如果你選 Kind:

一樣,Mac 用 brew install kind。裝好後,一行指令建立你的叢集:

kind create cluster --name my-local-lab

搞定。就是這麼快。

第三步:跟 K8s 溝通的遙控器 - kubectl

不管你用 Minikube 還是 Kind,你都需要一個跟 K8s 叢集溝通的工具,那就是 kubectl。你可以把它想像成電視遙控器,用來對 K8s 下指令。

這個安裝也超簡單,Mac 一樣是 brew install kubectl。Windows 和 Linux 可以去 K8s 官網下載執行檔,放到系統路徑底下就好。

裝好後,測試一下,看看能不能抓到你叢集裡所有的 Pod(Pod 是 K8s 裡最基本的部署單位):

kubectl get pods --all-namespaces

如果你看到一堆跟 kube-system 有關的 Pod 列表,而且狀態是 Running,那就對了!

本地 DevOps 工具鏈協作示意圖
本地 DevOps 工具鏈協作示意圖

第四步:虛擬機管理大師 Vagrant + 自動化助手 Ansible

嗯,我知道你會問,既然都有 Docker 了,為什麼還要 Vagrant?Vagrant 是用來管理「虛擬機 (VM)」的。有時候,你會想模擬一個更真實的環境,比如「一台 Web 伺服器 + 一台資料庫伺服器」,這種多機器的場景,用 Vagrant 就很方便。它可以讓你用一個簡單的設定檔(叫 Vagrantfile)就定義好你需要的所有虛擬機。

Ansible 則是自動化設定的好幫手。當你用 Vagrant 把虛擬機開起來之後,總不能一台一台手動登入進去安裝軟體吧?太遜了。這時候就用 Ansible 寫一個劇本 (Playbook),讓它自動幫你在所有機器上裝好 Nginx、資料庫等等。

這兩個通常會一起用。安裝方法:

  1. 先去 VirtualBox 官網安裝 VirtualBox,這是 Vagrant 預設用來建立虛擬機的後端。
  2. 再去 Vagrant 官網安裝 Vagrant。
  3. Ansible 的安裝,Mac 上是 brew install ansible。Windows 的話比較麻煩,你得在之前裝的 WSL (Ubuntu) 裡面去安裝它。

這兩個工具的組合玩法很多,可以讓你很輕鬆就模擬出一個小型的伺服器叢集。

第五步:基礎設施的藍圖 - Terraform

最後,來談談 Terraform。這東西就是所謂的「基礎設施即代碼 (Infrastructure as Code, IaC)」。什麼意思呢?

想像一下,你前面做的所有事情:建立 Vagrant 虛擬機、寫 Ansible 劇本、定義 K8s 要部署什麼...這些步驟,你都可以用 Terraform 的程式碼把它們「描述」出來。然後只要執行 terraform apply,Terraform 就會像個魔法師一樣,自動去呼叫 Vagrant、Ansible、Kubernetes... 把你描述的整個環境全部變出來!

當你玩膩了,想全部砍掉重來,也只要一行 terraform destroy,所有東西就乾乾淨淨消失。這對於管理複雜的環境來說,真的超級無敵重要。

Terraform 的安裝也是去官網下載對應的執行檔就好。Mac 也可以用 brew install terraform

對了,順便提一下,Terraform 是 HashiCorp 公司的產品,他們家還有 Vagrant,都是 DevOps 界響噹噹的工具。而 Kubernetes 最早是 Google 開源出來的,現在由 CNCF (雲原生運算基金會) 維護。了解這些背景也蠻有趣的,你會發現這些工具之間其實都有一些淵源。

成功部署後在瀏覽器看到 Nginx 歡迎頁面的成果
成功部署後在瀏覽器看到 Nginx 歡迎頁面的成果

不過,這套方法有極限嗎?

當然有。在筆電上搞這一套,說穿了就是個「練習場」,它跟真實世界的雲端環境還是有差的。

最大的限制就是你筆電的硬體。你的 CPU、記憶體、硬碟空間就這麼多,你不可能模擬出那種幾百台伺服器的大規模擴展情境。跑個三五台虛擬機或十幾個容器大概就是極限了,再多你的筆電風扇可能會像要起飛一樣。

還有,很多雲端平台專屬的服務,比如 AWS Lambda、Google Cloud Functions 這種 Serverless 的東西,或像是 AWS S3、GCS 這種物件儲存服務,你在本機上就沒有一模一樣的對應品。雖然有社群開發的替代方案,但終究不是原廠的。

所以,我會這樣建議:把本地實驗室當作你理解核心概念、練習工具操作、測試自動化腳本的地方。當你對這些工具都滾瓜爛熟之後,再把同樣的邏輯套用到雲端環境上,到時候你會發現一切都變得非常簡單,因為底層的原理都是相通的。

那接下來可以玩什麼?

當你把這個遊樂場蓋好之後,天空才是你的極限!這裡有幾個點子給你參考:

  • 架設一個完整的 CI/CD 流程可以試著在本機跑一個 Jenkins 或 GitLab Runner,設定一個自動化流程:當你把程式碼推送到 Git,它就自動打包成 Docker 映像檔,然後部署到你的本地 K8s 叢集。
  • 打造微服務架構:寫幾個簡單的小服務(比如一個處理使用者、一個處理訂單),用 Docker 包起來,然後用 K8s 管理它們,讓它們互相溝通。
  • 練習監控與告警:部署 Prometheus 和 Grafana(這兩個也都可以跑在 K8s 裡),學習如何監控你的應用程式,設定儀表板,甚至搞一個告警通知。
  • 災難復原演練:這超好玩!故意手動把 K8s 裡的某個 Pod 刪掉,看看系統會不會自動把它救回來。或者把資料庫的容器關掉,看看你的應用程式會發生什麼事,然後練習怎麼修復它。

DevOps 的精髓不是背誦理論,而是動手實踐。老實說,光是看文章看影片,永遠學不會游泳。你的筆電就是你最安全、最便宜的游泳池。

所以,別再猶豫了。動手吧!你的 DevOps 遊樂場正在等著你,而且,它一毛錢都不會跟你收。


那你呢?你第一個想在你的本地實驗室跑什麼專案?是想挑戰 CI/CD,還是先從簡單的微服務開始?在下面留言分享一下你的想法吧!

Related to this topic:

Comments

  1. profile
    Guest 2025-10-07 Reply
    欸欸!!!Docker、K8s直接來!筆電開,超緊張!命令行打錯超多次,重來又重來,還有那個鏡像名字一直記不起來⋯不過等部屬起來看到成功跑真的嗨到飛天!配宵夜更爽,燈還被舍監盯場,但我還是忍不住一直debug!!笑死🤣
  2. profile
    Guest 2025-08-15 Reply
    欸不是啦,搞這麼複雜幹嘛?普通工程師哪有時間弄這麼多虛擬機和工具?我覺得還不如直接用雲端服務,省時省力又省錢,在本機折騰真的很耗精神啦!
  3. profile
    Guest 2025-07-15 Reply
    孩子啊,這DevOps聽起來好像很專業喔!不過我覺得學習新技術很棒,尤其是能在自己的筆電上玩。不過別太投入,記得也要運動、曬太陽啦,技術學習要平衡點
  4. profile
    Guest 2025-05-17 Reply
    這篇文章真的是很有幫助!我想問一下,對於初學者來說,有沒有什麼特別的建議或資源可以推薦呢?還是說直接上手就好?期待你的回覆!
  5. profile
    Guest 2025-05-11 Reply
    我覺得在筆記型電腦上建立DevOps實驗室可能會有點限制,畢竟硬體資源有限。或許可以考慮使用雲端服務來獲取更多資源?這樣能更靈活地進行測試和學習!
  6. profile
    Guest 2025-04-29 Reply
    我覺得這篇文章提到的步驟聽起來很不錯,但真的適合所有人嗎?尤其是初學者可能會覺得有點複雜,會不會需要更詳細的解釋或範例呢?