第二十章 實戰案例 - 作業系統
章節概述
本章將介紹 Docker 在不同作業系統映象場景下的實戰案例。當你建立容器化應用時,選擇合適的基礎映象至關重要。不同的作業系統映象在大小、功能和效能方面各有特點,適用於不同的使用場景。本章透過具體的案例,詳細講解如何在 Docker 中使用主流作業系統映象,包括輕量級映象 (Busybox、Alpine) 和完整功能映象 (Debian、Ubuntu、CentOS 等)。
版本說明
本章範例中使用的作業系統映象版本遵循以下原則:
- Alpine、Debian、Ubuntu、CentOS 等作業系統映象採用大版本或次版本標籤(如
alpine:3.21、ubuntu:26.04),避免使用latest標籤確保建立的可再現性 - OS 大版本保留,以便獲得最新的安全補丁和修復
- 在生產環境中,建議根據實際需求選擇合適的版本,並定期更新以獲得安全修復
為什麼選擇合適的作業系統映象很重要
在容器化應用開發中,選擇合適的基礎作業系統映象直接影響容器的大小、啟動速度、安全性和執行效能。不同的映象提供了不同的功能集和資源佔用:
- 輕量級映象 (Busybox、Alpine) - 映象大小僅幾 MB,啟動快速,適合微服務、IoT 裝置和對資源敏感的環境。Busybox 是最小的選擇,整合了常見的 Unix 工具;Alpine 則提供了完整的套件管理器,方便安裝額外工具。
- 通用映象 (Debian、Ubuntu) - 提供完整的 Linux 功能和豐富的軟體生態,映象大小通常在 100-300 MB 之間。適合需要靈活安裝各種依賴和工具的應用場景。
- 企業級映象 (CentOS、Fedora) - 基於 Red Hat 生態,廣泛應用於企業環境和複雜系統應用。提供了 yum 套件管理器和強大的系統管理工具。
選擇映象的關鍵原則是 『小而夠用』——選擇滿足應用需求的最小映象。這樣可以減少安全漏洞表面積、加快映象拉取和推送速度、降低儲存成本,同時也使容器更便於分發和部署。
常用作業系統映象對比
| 映象 | 大小 | 套件管理器 | 適用場景 | 優勢 |
|---|---|---|---|---|
| Busybox | ~1 MB | 無 | 最小化工具集、initrd | 極致輕量,啟動秒級 |
| Alpine | ~5 MB | apk | 微服務、靜態應用 | 體積小,有套件管理器 |
| Debian | ~100 MB | apt-get | 通用應用、開發環境 | 軟體套件豐富,穩定性強 |
| Ubuntu | ~80 MB | apt-get | 類似 Debian,現代化系統 | 更新頻繁,使用者多 |
| CentOS | ~200 MB | yum | 企業應用、相容性需求 | 企業級支援,穩定性高 |
| Fedora | ~200 MB | dnf | 新屬性需求、開發環境 | 最新技術棧,創新性強 |
學習目標
透過學習本章內容,你將能夠:
- 理解不同作業系統映象的特點、大小和適用場景
- 掌握在 Docker 中使用各類作業系統映象的方法和最佳實踐
- 學習如何根據實際需求選擇合適的基礎映象,實現映象最佳化
- 瞭解如何在不同作業系統容器中安裝、設定和管理應用程式
- 掌握多階段建立等高階技巧,最小化最終映象大小
- 學會使用 Docker Compose 編排多個作業系統容器環境
章節內容導向
- Busybox — 超輕量級工具集映象,適合嵌入式和最小化容器
- Alpine — 輕量級 Linux 映象,廣泛用於生產環境微服務
- Debian Ubuntu — 功能完整的通用 Linux 映象,生態豐富
- CentOS Fedora — 企業級 Linux 映象,適合複雜系統應用
- 本章小結