在現代軟體開發與維運(DevOps)實踐中,容器化技術已成為標準配備。本文聚焦於如何在主流的 Linux 發行版 Ubuntu 上,進行 Docker 引擎的標準化安裝與設定。內容從基礎的系統環境檢查,如核心版本與系統架構,到利用 APT 套件管理系統進行精確的來源配置與安裝,完整呈現一個可重複、穩定且符合官方建議的部署路徑。此流程不僅確保了 Docker 服務的正常運行,也為後續的容器化應用奠定穩固基礎,是系統管理員與開發者不可或缺的實務指南。
Ubuntu 上的 Docker 安裝與服務管理:從系統準備到容器啟動
在 Ubuntu 上部署 Docker:系統要求與準備工作
Docker 引擎可以在多個 Ubuntu 版本上運行,包括 Wily 15.10、Vivid 15.04、Trusty 14.04 (LTS) 和 Precise 12.04 (LTS)。然而,Docker 的運行有一個關鍵的硬體要求:必須使用 64 位元的作業系統,並且 Linux 核心版本至少為 3.10。
確認 Linux 核心版本
在安裝 Docker 之前,檢查當前系統的核心版本是必要的步驟。這可以透過在 Ubuntu 終端機執行以下命令來完成:
uname -r
如果輸出結果顯示的核心版本(例如 3.13)大於或等於 3.10,則表示系統滿足 Docker 的核心版本要求。
更新 APT 套件來源與安裝核心
為了確保能夠從正確的倉庫獲取 Docker 套件,需要更新系統的 APT 套件來源列表。這通常涉及到修改 /etc/apt/sources.list.d/docker.list 檔案。
確定 Ubuntu 版本:首先,需要知道當前系統的 Ubuntu 版本,以便添加正確的軟體倉庫。
lsb_release -a根據
lsb_release -a的輸出,例如,如果是 Ubuntu Trusty (14.04 LTS),則需要在docker.list檔案中添加對應的倉庫行。更新套件列表:在修改了
sources.list.d/docker.list檔案後,需要重新整理 APT 的套件快取。sudo apt-get update移除舊版 Docker (若有):如果之前安裝過舊版本的 Docker(例如基於 LXC 的版本),建議先將其移除,以避免與新版 Docker Engine 產生衝突。
sudo apt-get purge lxc-docker*檢查 Docker Engine 可用性:在添加倉庫後,可以查詢 APT 快取,確認 Docker Engine 套件是否可供安裝。
sudo apt-cache policy docker-engine安裝 Linux 核心更新 (Trusty 版本特定):對於 Ubuntu Trusty (14.04 LTS) 版本,為了確保最佳的 Docker 運行環境,建議安裝一個更新的核心。
sudo apt-get install linux-image-generic-lts-trusty重啟系統:安裝新的核心後,必須重啟系統,讓新的核心生效。
sudo reboot
安裝 Docker Engine
系統重啟後,就可以正式安裝 Docker Engine 了。
sudo apt-get update
sudo apt-get install docker-engine
這個命令會從已添加的 Docker APT 倉庫下載並安裝 Docker Engine 套件及其所有必需的依賴項。
Docker 服務的啟動與狀態檢查
無論是在 Red Hat 7 還是 Ubuntu 上,Docker 服務的啟動和管理方式都非常相似,通常使用 systemctl 或 service 命令。
啟動 Docker 服務
安裝完成後,需要啟動 Docker 守護進程(daemon)。
sudo service docker start
在較新的 Linux 系統中,service 命令實際上是 systemctl 的一個包裝器。因此,也可以使用 systemctl 來啟動:
sudo systemctl start docker
檢查 Docker 服務狀態
為了確認 Docker 服務是否已成功啟動並運行,可以檢查其狀態。
sudo service docker status
或者使用 systemctl:
sudo systemctl status docker
如果 Docker 服務正在運行,輸出的狀態訊息中會包含 Active: active (running)。這表明 Docker 守護進程已經啟動,可以開始使用 Docker 命令了。
在 Ubuntu 上運行「Hello World」應用
安裝並啟動 Docker 服務後,就可以像在 Red Hat 7 上一樣,運行「Hello World」應用來測試 Docker 環境。
sudo docker run hello-world
這個命令的執行過程與在 Red Hat 7 上是相同的:Docker CLI 請求 Docker Daemon 拉取 hello-world 映像檔(如果本地不存在),然後基於該映像檔創建並運行一個容器。容器執行完畢後,會輸出一段訊息,確認 Docker 安裝成功。
在 Ubuntu 上,您應該會看到與 Red Hat 7 上類似的輸出,包含「Hello from Docker!」的歡迎訊息,這證明了 Docker 在 Ubuntu 環境下的成功部署和運行。
@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_
skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100
object "使用者" as User
object "Ubuntu Terminal" as UbuntuTerminal
object "APT Package Manager" as APTManager
object "Docker Engine Package" as DockerEnginePkg
object "Docker Service (daemon)" as DockerService
object "Docker CLI" as DockerCLI
object "Docker Image (hello-world)" as HelloWorldImage
object "Docker Container (hello-world)" as HelloWorldContainer
partition "Ubuntu Docker 安裝與運行流程" {
User --> UbuntuTerminal : 執行 uname -r 檢查核心版本
UbuntuTerminal --> User : 回傳核心版本資訊
User --> UbuntuTerminal : 執行 lsb_release -a 確定 Ubuntu 版本
UbuntuTerminal --> User : 回傳版本資訊
User --> UbuntuTerminal : 更新 APT 套件來源 (修改 docker.list)
User --> APTManager : 執行 sudo apt-get update
APTManager --> User : 更新套件快取
User --> APTManager : 執行 sudo apt-get install linux-image-generic-lts-trusty (若需)
APTManager --> User : 安裝核心套件
User --> UbuntuTerminal : 執行 sudo reboot
User --> UbuntuTerminal : 執行 sudo apt-get update
User --> APTManager : 執行 sudo apt-get install docker-engine
APTManager --> DockerEnginePkg : 下載並安裝 Docker Engine
User --> UbuntuTerminal : 執行 sudo service docker start
DockerService --> User : 啟動 Docker 服務
User --> UbuntuTerminal : 執行 sudo service docker status
DockerService --> User : 回傳服務狀態 (Active: active (running))
User --> UbuntuTerminal : 執行 sudo docker run hello-world
DockerCLI --> DockerDaemon : 請求運行容器
DockerDaemon --> HelloWorldImage : 下載映像檔 (若無)
DockerDaemon --> HelloWorldContainer : 創建並運行容器
HelloWorldContainer --> DockerDaemon : 產生輸出訊息
DockerDaemon --> DockerCLI : 傳送輸出
DockerCLI --> User : 顯示 "Hello from Docker!" 訊息
}
@enduml看圖說話:
此圖示詳細描繪了在 Ubuntu 環境下安裝 Docker 並運行「Hello World」應用程式的完整流程。首先,使用者透過 Ubuntu 終端機執行 uname -r 和 lsb_release -a 命令,以確認系統核心版本是否符合要求,並確定 Ubuntu 的具體版本。接著,使用者會更新 APT 套件來源,這可能涉及修改 /etc/apt/sources.list.d/docker.list 文件,然後執行 sudo apt-get update 來刷新套件快取。對於特定版本的 Ubuntu(如 Trusty),可能需要安裝額外的核心套件 (linux-image-generic-lts-trusty) 並重啟系統。完成系統準備後,使用者執行 sudo apt-get install docker-engine 命令,APT 套件管理器會從 Docker 的官方倉庫下載並安裝 Docker Engine。安裝完成後,使用者透過 sudo service docker start 命令啟動 Docker 服務,並使用 sudo service docker status 來驗證服務是否成功運行。最後,使用者執行 sudo docker run hello-world 命令。Docker CLI 會與 Docker Daemon 協同工作,下載 hello-world 映像檔(如果本地沒有),創建並運行一個容器,容器執行後將「Hello from Docker!」的訊息輸出到終端,確認 Docker 環境已準備就緒。
縱觀此 Docker 部署流程在 Ubuntu 系統上的實踐細節,可以發現其核心挑戰並非指令的複雜性,而在於前期系統版本與核心依賴性的精準確認。許多後續的穩定性問題,往往源於對這些基礎環境準備工作的輕忽。相較於便捷的一鍵安裝腳本,這種基於官方倉儲的標準化程序,雖步驟稍多,卻為系統提供了更佳的長期可維護性與安全性。hello-world 的成功運行,不僅是安裝完成的標誌,更是對整個準備工作鏈路的有效性驗證,是建立後續複雜容器化應用的關鍵品質閘門。
展望未來,隨著容器編排工具成為主流,一個穩定、標準化的底層 Docker 環境,其價值將從「單純運行容器」轉變為「支撐整個微服務架構的基石」。
玄貓認為,對於追求長期系統韌性的開發者與維運團隊而言,嚴謹遵循此標準安裝程序,正是確保未來架構擴展性與營運可靠性的最佳投資。