20. 如何在 Ubuntu Server 上安裝 Docker:容器化逐步指南

容器化透過將軟體打包到隔離、輕量的環境中,改變了應用程式部署方式,確保了不同系統間的一致性。 Ubuntu Server 上的 Docker 是一個強大的組合,簡化了這一過程,使開發人員和系統管理員能夠無縫地建置、交付和執行應用程式。作為業界領先的容器化平台,Docker 簡化了工作流程,並提高了現代應用程式開發的可擴展性。

在本指南中,我們將引導您完成在 Ubuntu Server 上安裝 Docker 並執行第一個容器化應用程式的步驟。無論您是 Docker 新手,還是希望優化部署過程,本教學都將協助您開始在 Ubuntu Server 上進行容器化。


往期文章:

01. Ubuntu Server 簡介 – SysOSX: AI & Cloud

02. 如何架設您的第一台 Ubuntu 伺服器:初學者指南 – SysOSX: AI & Cloud

03. 掌握 Ubuntu Server 的 Linux 命令列 – SysOSX: AI & Cloud

04. Ubuntu Server 使用者與權限管理:完整指南 – SysOSX: AI & Cloud

05. Ubuntu Server 網路基礎:完整指南 – SysOSX: AI & Cloud

06. 在 Ubuntu Server 上安裝和管理軟體:完整指南 – SysOSX: AI & Cloud

07.Ubuntu Server 的修補程式更新:完整指南 – SysOSX: AI & Cloud

08. 保護您的 Ubuntu 伺服器:強化與防護的實用步驟 – SysOSX: AI & Cloud

09. Ubuntu 伺服器稽核與記錄

10. Ubuntu Server 系統監控工具:完整指南 – SysOSX: AI & Cloud

11. Ubuntu 伺服器集中式記錄:必讀指南 – SysOSX: AI & Cloud

12. Ubuntu Server 稽核與合規:最佳實務 – SysOSX: AI & Cloud

13. 架設 Ubuntu 伺服器用於託管和 Web 應用程式:終極指南 – SysOSX: AI & Cloud

14. 在一台 Ubuntu 伺服器上託管多個網站:實用技巧 – SysOSX: AI & Cloud

15. Ubuntu Server 儲存與磁碟管理:簡明指南 – SysOSX: AI & Cloud

16. 在 Ubuntu Server 上架設檔案共用服務:完整指南 – SysOSX: AI & Cloud

17. 在 Ubuntu 上架設安全的資料庫伺服器:MySQL 與 MariaDB 比較 – SysOSX: AI & Cloud

18. 如何在 Ubuntu Server 上設定和使用 LVM:完整指南 – SysOSX: AI & Cloud

19. KVM 虛擬化簡介:面向 Ubuntu Server 的初學者指南 – SysOSX: AI & Cloud



先決條件

在安裝 Docker 之前,請確保您的 Ubuntu 伺服器符合以下要求:

  • Ubuntu 20.04 LTS 或更新版本 (64 位元)。
  • sudo 權限 或 root 存取權限。
  • 穩定的網際網路連線 ,用於下載套件。

步驟 1:在 Ubuntu Server 上安裝 Docker

更新系統套件
sudo apt update && sudo apt upgrade -y  

安裝所需的相依性
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y  
新增 Docker 官方 GPG 金鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  

設定 Docker 存放庫
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null  

安裝 Docker Engine
sudo apt update  
sudo apt install docker-ce docker-ce-cli containerd.io -y  
驗證安裝
sudo docker run hello-world  

如果成功,您將看到如下確認訊息 。


步驟 2:以非 root 使用者管理 Docker

預設情況下,Docker 需要 sudo 權限。為避免重複輸入 sudo :

  1. 建立 Docker 群組 (如果不存在): sudo groupadd docker
  2. 將您的使用者新增至該群組: sudo usermod -aG docker $USER
  3. 套用變更: newgrp docker

步驟 3:執行您的第一個容器

在幾秒鐘內啟動 Nginx Web 伺服器 :

docker run -d -p 8080:80 --name my-nginx nginx  

  • -d:以背景模式執行。
  • -p 8080:80:將主機連接埠 8080 對應到容器連接埠 80。
  • --name:為容器指定自訂名稱。

驗證存取:

curl http://localhost:8080  

步驟 4:基本 Docker 命令

命令描述
docker ps列出正在執行的容器
docker images查看已下載的映像
docker stop <container-id>停止容器
docker rm <container-id>刪除容器
docker rmi <image-id>刪除映像

步驟 5:使用 Docker Compose 自動執行工作流程

對於多容器應用程式,請使用 Docker Compose:

  • 安裝 Docker Compose:
sudo apt install docker-compose -y
  • 建立 docker-compose.yml 檔案:
version: '3'  
services:  
  web:  
    image: nginx  
    ports:  
      - "8080:80"  

  • 啟動堆疊:
docker-compose up -d

Ubuntu 上 Docker 的最佳實務

  • 定期更新 Docker:
sudo apt update && sudo apt upgrade docker-ce -y
  • 清理未使用的資源:
docker system prune -a
  • 使用官方映像 (來自 Docker Hub ,以確保安全性和可靠性)。

常見問題疑難排解

  • 權限遭拒:確保您的使用者位於 docker 群組中。
  • 連接埠衝突:檢查是否有其他服務正在使用相同的連接埠。
  • 映像提取錯誤:驗證網際網路連線和映像名稱拼寫。

Docker 與其他容器化工具比較

儘管 Docker 主導著容器化領域,但了解替代方案有助於為您的使用案例選擇合適的工具:

工具類型主要功能最適合
Docker應用程式容器– 專注於可攜式的、以應用程式為中心的打包<br>- 龐大的生態系統 (Docker Hub)<br>- 簡單的 CLI 和 Compose開發人員、微服務、CI/CD 工作流程
LXD系統容器– 完整的操作系統環境(類似輕量級虛擬機器)<br>- 與 LXC/Linux 緊密整合<br>- 進階資源管理基礎設施即服務、虛擬機器監控程式替代品
Podman應用程式容器– 無守護進程架構<br>- 預設無 root<br>- 與 Docker 相容的 CLI注重安全的工作負載、邊緣運算
containerd容器執行階段– 低階執行階段(Docker/Kubernetes 使用)<br>- 極簡設計<br>- 專注於可擴展性Kubernetes 叢集、大規模部署
CRI-OKubernetes 執行階段– 針對 Kubernetes CRI 最佳化<br>- 輕量且安全<br>- 由 Red Hat 支援OpenShift/OKD 叢集、Kubernetes 原生維運
Docker 為何依然出色
  • 對初學者友善:簡化了應用程式開發和測試的工作流程。
  • 可攜性:容器在 macOS、Windows 和 Linux 上執行完全一致。
  • 社群支援:超過 800 萬個 Docker Hub 映像和詳盡的文件。
何時考慮替代方案
  • LXD:需要完整的操作系統隔離(例如,使用不同使用者託管多個服務)。
  • Podman:優先考慮安全性(例如,政府/醫療工作負載)。
  • containerd/CRI-O:建置 Kubernetes 原生基礎設施。

結論

透過遵循本指南,您已在 Ubuntu Server 上安裝了 Docker 並部署了第一個容器化應用程式。Docker 的靈活性使其在 DevOps、雲端原生開發和混合環境中不可或缺。探索進階功能,例如 Docker Swarm 或 Kubernetes 整合 ,以擴展您的容器工作負載。

參考: Docker 官方文件

接下來做什麼?準備探索面向 Linux 容器的 LXD

既然您已經掌握了用於應用程式容器化的 Docker,讓我們更深入地了解 Linux 系統容器的世界吧! 敬請期待 我們即將發布的指南:

“Linux 容器 LXD 簡介:輕量級虛擬化變得簡單“

2 thoughts on “20. How to Install Docker on Ubuntu Server: A Step-by-Step Guide to Containerization”

發表留言