Docker 安裝#
Docker 的安裝方式依作業系統而異,主要分為兩大類:
- Docker Desktop:適用於 macOS、Windows、Linux 桌面環境,包含 GUI、VM、CLI 一整套
- Docker Engine(server-side install):僅安裝 daemon 與 CLI,多用於 Linux 伺服器
兩者在指令使用上幾乎相同,但底層架構與授權條款有差異。
Docker Desktop 與 Docker Engine 的差異#
| 比較項目 | Docker Desktop | Docker Engine |
|---|---|---|
| 適用平台 | macOS / Windows / Linux 桌面 | Linux 伺服器 |
| 是否包含 VM | 是(背後啟動 LinuxKit VM) | 否(直接跑在 host kernel) |
| GUI | 有 | 無 |
| 服務管理 | 應用程式自身管理 | systemd 管理 |
| 商業授權 | 大型企業需付費 | 開源免費 |
在 macOS 與 Windows 上,由於沒有原生 Linux Kernel,Docker Desktop 必然需要一個 Linux VM 才能執行 Linux 容器。下一章會深入討論 macOS 的 VM 機制。
在 macOS 安裝 Docker Desktop#
macOS 上最簡單的方式是直接下載官方安裝包:
- 前往 https://www.docker.com/products/docker-desktop/ ↗
- 依 CPU 架構(Intel 或 Apple Silicon)下載對應
.dmg - 拖曳至
/Applications - 第一次啟動時會要求授予權限以建立 VM 與虛擬網路介面
或使用 Homebrew:
brew install --cask docker啟動 Docker Desktop 後,可在終端確認:
docker version
docker info預期輸出(具體值依環境而異):docker version 會列出 Client 與 Server 的版本,Server 部分的 OS/Arch 通常會顯示 linux/amd64 或 linux/arm64,即使 host 是 macOS——因為 daemon 跑在 VM 內。
在 Windows 安裝 Docker Desktop#
Windows 安裝 Docker Desktop 之前,建議先啟用 WSL2:
- 啟用
Virtual Machine Platform與Windows Subsystem for Linux選項 - 安裝 WSL2 並升級 kernel
- 下載 Docker Desktop for Windows 並安裝
- 在設定中選擇
Use the WSL 2 based engine
Windows 上的 Docker Desktop 實際上利用 WSL2 提供的輕量 VM 來執行 Docker daemon。
在 Linux 安裝 Docker Engine#
Linux 上推薦直接安裝 Docker Engine,不需要 VM 中介層。以下分別介紹 Debian/Ubuntu 系與 RHEL/CentOS 系的安裝方式。
Ubuntu / Debian(apt)#
新增 Docker 官方 APT 倉庫並安裝:
# 移除舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安裝必要工具
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 加入 Docker 官方 GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 加入 APT 來源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.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-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginRHEL / CentOS / Rocky(yum / dnf)#
# 移除舊版本
sudo yum remove docker docker-client docker-common docker-engine
# 加入 Docker 官方倉庫
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安裝 Docker Engine
sudo yum install -y docker-ce docker-ce-cli containerd.io由 systemd 管理 Docker 服務#
Linux 上的 Docker Engine 通常以 systemd service 形式運作。常用指令:
# 啟動 Docker
sudo systemctl start docker
# 設為開機自動啟動
sudo systemctl enable docker
# 確認狀態
sudo systemctl status docker
# 重新啟動
sudo systemctl restart docker
# 停止
sudo systemctl stop docker預期輸出(具體值依環境而異):status 會顯示 active (running),並列出 daemon 的 PID 與最近幾行 log。
將使用者加入 docker 群組#
預設情況下,只有 root 或 docker 群組成員可以執行 docker 指令。將目前使用者加入群組:
sudo usermod -aG docker $USER
# 重新登入或執行
newgrp docker加入
docker群組等同於賦予該使用者 root 權限(因為可以掛載 host 任意路徑進容器)。在多人共用的伺服器上請審慎評估。
驗證安裝#
執行 hello-world 映像確認安裝成功:
docker run --rm hello-world預期輸出(具體值依環境而異):會看到一段 Hello from Docker! 文字,並說明 Docker daemon 已成功從 Docker Hub pull 映像、建立容器、執行並回傳訊息。
延伸閱讀#
- Docker Docs — Install Docker Engine on Ubuntu: https://docs.docker.com/engine/install/ubuntu/ ↗
- Docker Docs — Install Docker Desktop: https://docs.docker.com/desktop/ ↗
- systemd man pages —
systemctl(1)、systemd.service(5)