iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
Software Development

30天收斂後端開發心法系列 第 26

30天收斂後端開發心法 - (26) Docker

  • 分享至 

  • xImage
  •  

上一篇我們提到如何用 Docker 來啟動 NGINX 服務,那我們就來聊聊 Docker 本身是什麼。

對我來說,Docker 就像是一個用「文字設定檔」來建立輕量級虛擬環境的工具。

文字即環境?

這些文字檔(如 Dockerfile、docker-compose.yml)可以進版本控制

所有人 clone 下來之後,環境一鍵啟動,不用再手動安裝東安裝西

大家跑的環境都一樣,不再出現那種:

“可是我在 lab 上跑都沒問題啊…”

是不是很棒啊!

Docker 的三大核心概念

Image(映像檔)

這個大家應該常聽到的比喻:

Image 就像是光碟,裡面裝著服務或應用程式的所有組件與設定。
本身是唯讀的(read-only),不能直接運作。

當初我聽前輩這樣講時,腦袋還是一片抽象,但後來真的發現…這比喻超貼切!

你可以把 Image 想像成:

  • Laravel 專案的基底環境
  • NGINX 設定好的伺服器鏡像
  • MySQL 完整設定好的資料庫映像

Container(容器)

如果 image 是光碟,那 container 就是「放入光碟機後正在運作的程式」。

Container 是根據 Image 啟動出來的執行實體。

每個 container:

  • 是獨立運作的應用
  • 可以隨時啟動、停止、刪除
  • 資源使用更少,速度也比 VM 快很多

常見應用像是:

  • Laravel 應用 container
  • NGINX 伺服器 container
  • MySQL 資料庫 container

現在大多數主流應用程式都已經提供官方的 container 版本,拿來用就像裝 app 一樣簡單。

Repository(映像檔倉庫)

如果 image 是光碟,那 repository 就像是光碟收納盒📀

Repository 是儲存 image 的地方,最常見的就是:

  • Docker Hub(官方預設的公開 repository)
  • 也有私有的(如 GitLab Container Registry, AWS ECR)

當你下 docker run 指令時:

Docker 會先檢查你本機有沒有對應的 image
如果沒有,就會自動從 repository 拉下來
這讓部署過程變得非常簡單、快速。

和傳統的虛擬機(VM)相比:

項目 傳統 VM Docker Container
啟動速度 幾分鐘 幾秒鐘
硬體資源 高(需要整套作業系統) 低(共用 Host 核心)
可攜性 較差 高(跨平台、跨環境)
隔離性
管理難度 較高 低(指令/設定檔即可)

總結

Docker 就是:

  • 執行快速、資源使用少
  • 可拆可合、易於版本控制
  • 適合 CI/CD、自動部署、微服務架構的絕佳工具

上一篇
30天收斂後端開發心法 - (25) Server
下一篇
30天收斂後端開發心法 - (27) Dockerfile
系列文
30天收斂後端開發心法30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言