Docker 基本介紹
Docker 基本介紹
架構總覽
上圖展示了 Docker 完整架構,包含 Docker 客戶端、Docker 守護程序、容器運行時、映像檔倉庫等核心元件及其互動關係
Docker 如何運作?
Docker 采用客戶端-伺服器架構,主要包含以下工作流程:
- 開發階段:使用 Dockerfile 定義應用程式環境
- 建構階段:透過
docker build將 Dockerfile 轉換為映像檔 - 分享階段:將映像檔推送到 Docker Registry 進行分享
- 部署階段:在任何支援 Docker 的環境中運行容器
這個流程確保了「一次建構,到處運行」的目標。
Docker Engine
Docker 的核心運行引擎
- 負責管理容器的整個生命週期
- 包含 Docker 守護程序(dockerd)和 REST API
- 提供容器的建立、啟動、停止和刪除等功能
Container(容器)
應用程式的輕量化運行環境
- 基於映像檔建立的可執行實例
- 提供隔離的運行環境,包含應用程式及其所有依賴
- 相較於虛擬機器,具有更快的啟動速度和更低的資源消耗
- 每個容器都有獨立的檔案系統、網路和程序空間
Image(映像檔)
容器的唯讀模板
- 包含執行應用程式所需的所有檔案、函式庫和設定
- 採用分層架構,支援增量更新和快速部署
- 具有不可變性,確保環境一致性
- 可以透過 Dockerfile 自動化建構
Dockerfile
映像檔的建構腳本
- 定義映像檔建構過程的文字檔案
- 包含一系列指令,如 FROM、RUN、COPY、CMD 等
- 實現基礎設施即程式碼(Infrastructure as Code)
- 支援版本控制和自動化建構
提示
Dockerfile 是實現可重現部署的關鍵,建議遵循最佳實踐來優化映像檔大小和安全性
Docker Registry
映像檔的儲存和分發中心
- 提供映像檔的上傳、下載和版本管理
- Docker Hub 是官方的公共註冊中心
- 支援私有註冊中心,滿足企業安全需求
- 實現映像檔的集中管理和團隊協作
Volume(資料卷)
持久化資料儲存
- 解決容器重啟時資料遺失的問題
- 提供容器間的資料共享機制
- 支援多種儲存驅動,如本機儲存、網路儲存等
- 資料生命週期獨立於容器生命週期
Network(網路)
容器間的通訊管理
- 提供容器與外部世界的網路連接
- 支援多種網路驅動模式:
- bridge: 預設網路模式,適用於單機容器通訊
- host: 直接使用主機網路,提供最佳性能
- overlay: 跨主機容器通訊,適用於叢集環境
- none: 無網路存取,適用於安全要求較高的場景
註解
適當的網路配置對於容器安全性和性能至關重要
Docker Compose
多容器應用程式的編排工具
- 透過 YAML 檔案定義和管理多容器應用程式
- 簡化複雜應用程式的部署和管理
- 支援服務依賴關係和啟動順序控制
- 提供開發、測試和生產環境的一致性
重要提示
Docker Compose 非常適合開發環境和小規模部署,對於大規模生產環境建議使用 Kubernetes 等編排工具
安裝 Docker
Docker 提供了跨平台的安裝支援。以下將介紹最常用的安裝方式和注意事項。
推薦安裝方式
Windows/macOS 使用者:直接下載 Docker Desktop,這是最簡單且完整的解決方案。
Linux 使用者:使用以下方式之一:
- 推薦:官方安裝腳本(最新版本)
- 替代:套件管理器安裝(簡單快速)
系統需求
| 平台 | 最低需求 | 建議配置 |
|---|---|---|
| Linux | 64位元、Kernel 3.10+ | Ubuntu 20.04+、Debian 10+、CentOS 8+ |
| Windows | Windows 10 Pro 64位元 | Windows 11 + WSL 2 |
| macOS | macOS 10.15+ | macOS 12+ 含 Apple Silicon 支援 |
方法一:官方一鍵安裝腳本(推薦)
這是 Docker 官方提供的最簡單安裝方式:
1 | 下載並執行官方安裝腳本 |
方法二:手動安裝(Ubuntu/Debian)
如果您需要更精確的控制,可以使用手動安裝:
1 | 更新套件索引 |
方法三:套件管理器安裝(簡單快速)
適用於快速測試或學習環境:
1 | Ubuntu/Debian |
安裝後必要步驟
無論使用哪種安裝方式,都需要完成以下步驟:
1. 驗證安裝
1 | 檢查 Docker 版本 |
2. 確認權限設定
1 | 確認使用者在 docker 群組中 |
安全提醒:將使用者加入 docker 群組會給予該使用者等同 root 的 Docker 操作權限。在生產環境中請謹慎考慮安全性。
Windows 和 macOS 安裝
這兩個平台的安裝非常簡單:
- 下載 Docker Desktop
- 執行安裝檔並遵循安裝精靈
- 安裝完成後重新啟動電腦(Windows)或啟動應用程式(macOS)
- 等待 Docker 服務啟動完成
- 使用上述驗證步驟確認安裝成功
安裝 Docker Compose
Docker Compose 是用於定義和管理多容器 Docker 應用程式的工具。現代版本的 Docker 已經內建 Compose 功能,但您也可以單獨安裝 Docker Compose。
檢查是否已安裝
現代版本的 Docker Desktop 和 Docker Engine 已經內建了 Docker Compose:
1 | 檢查 Docker Compose 版本(新版語法) |
Linux 手動安裝 Docker Compose
如果您的系統沒有內建 Docker Compose,可以手動安裝。有兩種主要的安裝方式:
方法一:作為 Docker CLI 插件安裝(推薦)
1 | 設定 Docker 配置目錄 |
方法二:作為獨立執行檔安裝
1 | 下載最新版本的 Docker Compose |
兩種安裝方式的區別
| 特性 | 插件安裝(方法一) | 獨立安裝(方法二) |
|---|---|---|
| 安裝位置 | ~/.docker/cli-plugins/ |
/usr/local/bin/ |
| 權限需求 | 用戶權限即可 | 需要 sudo 權限 |
| 使用語法 | docker compose |
docker-compose |
| 整合性 | 與 Docker CLI 深度整合 | 獨立運行 |
| 更新方式 | 替換插件檔案 | 重新下載執行檔 |
| 系統影響 | 僅影響當前用戶 | 全系統可用 |
| Docker 版本 | 需要 Docker 20.10+ | 支援較舊版本 |
推薦使用插件安裝的原因:
- 不需要 sudo 權限,更安全
- 與 Docker CLI 更好的整合
- 支援新的
docker compose語法 - 更容易管理和更新
使用套件管理器安裝
Ubuntu/Debian:
1 | sudo apt install -y docker-compose-plugin |
CentOS/RHEL:
1 | sudo yum install -y docker-compose-plugin |
驗證安裝
1 | 驗證 Docker Compose 安裝 |
新舊語法差異
- 新版語法:
docker compose(推薦使用) - 舊版語法:
docker-compose
新版 Docker Compose 作為 Docker CLI 的插件,提供更好的整合性和性能。
完整環境驗證
完成 Docker 和 Docker Compose 安裝後,使用以下步驟驗證整個環境:
1 | 1. 檢查 Docker 基本狀態 |
如果以上所有步驟都成功執行,恰喜您!Docker 環境已經準備就緒,可以開始您的容器化之旅了!
下一步學習建議
現在您已經了解了 Docker 的核心概念並完成了安裝,接下來建議:
- 學習基本指令:熟悉
docker run、docker build、docker ps等常用指令 - 編寫 Dockerfile:學習如何建立自己的映像檔
- 使用 Docker Compose:管理多容器應用程式
- 探索實際專案:將現有應用程式容器化