什麼是 Docker?為什麼需要 Docker?
Docker 是目前最流行的容器化平台,能夠將應用程式及其相依套件打包成輕量級、可移植的容器。根據 2025 年的統計,超過 65% 的企業正在使用 Docker 進行應用程式部署。
Docker 與虛擬機器的差異
相較於傳統虛擬機器(VM),Docker 容器具有以下優勢:
- 啟動速度:Docker 容器僅需幾秒即可啟動,VM 需要數分鐘
- 資源消耗:容器共享主機 OS 核心,記憶體使用量減少 50-70%
- 部署效率:一個映像檔可在任何環境執行,實現「一次建置,到處執行」
- 開發便利:解決「在我電腦上可以跑」的問題
Docker 核心概念快速理解
在開始安裝 Docker 之前,您需要了解四個核心概念:
- 映像檔(Docker Image):應用程式的唯讀模板,類似安裝光碟
- 容器(Docker Container):映像檔的執行實例,類似已安裝的程式
- 資料卷(Docker Volume):持久化儲存資料的機制,避免資料遺失
- 網路(Docker Network):容器間安全通訊的機制
Docker 系統需求與前置準備
在安裝 Docker 前,請確認您的系統符合以下最低需求:
Windows 系統需求(Docker Desktop)
- 作業系統:Windows 10 64位元專業版/企業版/教育版(Build 15063+)或 Windows 11
- 處理器:64位元處理器,支援 SLAT(第二層位址轉譯)
- 記憶體:至少 4GB RAM(建議 8GB 以上)
- 硬碟空間:至少 20GB 可用空間
- 虛擬化:BIOS 中啟用虛擬化技術(Intel VT-x 或 AMD-V)
macOS 系統需求(Docker Desktop)
- 作業系統:macOS 11 Big Sur 或更新版本
- 處理器:Apple Silicon (M1/M2/M3) 或 Intel 處理器
- 記憶體:至少 4GB RAM(建議 8GB 以上)
- 硬碟空間:至少 20GB 可用空間
Linux 系統需求(Docker Engine)
- 作業系統:64位元 Ubuntu、Debian、CentOS、Fedora 等主流發行版
- 核心版本:Linux 核心 3.10 或更新版本
- 記憶體:至少 2GB RAM(建議 4GB 以上)
- 硬碟空間:至少 10GB 可用空間
Windows Docker 安裝教學{#windows-安裝}
步驟 1:啟用 Windows 必要功能
首先,您需要啟用 WSL 2(Windows Subsystem for Linux)和虛擬化功能。
以系統管理員身份開啟 PowerShell,依序執行以下命令:
# 啟用 WSL 2 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 啟用虛擬機器平台功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 下載並安裝 WSL 2 Linux 核心更新
wsl --update
# 設定 WSL 2 為預設版本
wsl --set-default-version 2
# 重新啟動電腦以套用變更
Restart-Computer
步驟 2:下載 Docker Desktop for Windows
- 前往 Docker 官方網站
- 點選「Download for Windows」下載 Docker Desktop Installer
- 檔案大小約 500MB,下載時間視網路速度而定
步驟 3:安裝 Docker Desktop
- 執行下載的
Docker Desktop Installer.exe
- 在安裝精靈中勾選以下選項:
- ✅ Use WSL 2 instead of Hyper-V
- ✅ Add shortcut to desktop
- 點選「Ok」開始安裝
- 安裝完成後,點選「Close and restart」重新啟動電腦
步驟 4:初始設定與驗證
重新啟動後,Docker Desktop 會自動啟動:
- 接受服務條款
- 選擇是否登入 Docker Hub(可跳過)
- 開啟 PowerShell 或命令提示字元,執行驗證命令:
# 檢查 Docker 版本
docker --version
# 預期輸出:Docker version 24.0.x, build xxxxxx
# 檢查 Docker Compose 版本
docker compose version
# 預期輸出:Docker Compose version v2.23.x
# 執行測試容器
docker run hello-world
# 如果看到 "Hello from Docker!" 訊息,表示安裝成功
macOS Docker 安裝指南
步驟 1:選擇正確的安裝版本
Docker Desktop 提供兩個版本,請根據您的 Mac 處理器類型選擇:
如何確認處理器類型?
- 點選左上角 圖示 → 關於這台 Mac
- 查看「晶片」或「處理器」資訊
- Intel 處理器:下載 Docker Desktop for Mac (Intel)
- Apple Silicon (M1/M2/M3):下載 Docker Desktop for Mac (Apple Silicon)
步驟 2:安裝 Docker Desktop
方法一:圖形化介面安裝
- 開啟下載的
.dmg
檔案 - 將 Docker 圖示拖曳到 Applications 資料夾
- 從 Applications 資料夾開啟 Docker
- 首次啟動時,輸入系統密碼以安裝輔助工具
方法二:使用 Homebrew 安裝(推薦)
如果您已安裝 Homebrew,可使用以下命令:
# 安裝 Docker Desktop
brew install --cask docker
# 啟動 Docker Desktop
open /Applications/Docker.app
步驟 3:設定與驗證
# 等待 Docker Desktop 完全啟動(狀態列出現鯨魚圖示)
# 驗證 Docker 安裝
docker --version
# 驗證 Docker Compose
docker compose version
# 執行測試容器
docker run hello-world
Linux Docker 安裝步驟{#linux-安裝}
Linux 安裝較為複雜,以下提供 Ubuntu/Debian 和 CentOS/RHEL 的詳細步驟。
Ubuntu/Debian Docker 安裝
步驟 1:移除舊版本
# 移除可能存在的舊版 Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
步驟 2:設定 Docker 官方儲存庫
# 更新套件索引
sudo apt-get update
# 安裝必要的憑證和工具
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# 新增 Docker 官方 GPG 金鑰
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 設定 Docker 儲存庫
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
步驟 3:安裝 Docker Engine
# 更新套件索引
sudo apt-get update
# 安裝最新版 Docker Engine
sudo apt-get install docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
# 驗證安裝
sudo docker run hello-world
步驟 4:設定非 root 使用者權限(重要)
# 建立 docker 群組
sudo groupadd docker
# 將目前使用者加入 docker 群組
sudo usermod -aG docker $USER
# 套用群組變更(或登出再登入)
newgrp docker
# 測試無需 sudo 執行 docker
docker run hello-world
CentOS/RHEL/Fedora Docker 安裝
# 步驟 1:移除舊版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 步驟 2:安裝必要工具
sudo yum install -y yum-utils
# 步驟 3:設定儲存庫
sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 步驟 4:安裝 Docker Engine
sudo yum install docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
# 步驟 5:啟動 Docker 服務
sudo systemctl start docker
sudo systemctl enable docker
# 步驟 6:驗證安裝
sudo docker run hello-world
Docker Compose 安裝與設定{#docker-compose-安裝}
Docker Compose 是 Docker 的編排工具,用於定義和執行多容器應用程式。
Docker Desktop 使用者(Windows/macOS)
好消息!Docker Compose v2 已內建於 Docker Desktop 中,無需額外安裝。
驗證安裝:
docker compose version
Linux 使用者安裝 Docker Compose
方法一:使用 Docker 插件(推薦)
如果您按照上述步驟安裝,Docker Compose 插件已經安裝完成。
方法二:獨立安裝
# 下載最新版 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
# 賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
# 建立符號連結
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 驗證安裝
docker-compose --version
Docker Compose 實戰範例
建立 docker-compose.yml
檔案來部署 WordPress:
version: '3.8'
services:
wordpress:
image: wordpress:latest
container_name: wordpress-site
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress_password
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
networks:
- wp_network
restart: unless-stopped
db:
image: mysql:8.0
container_name: wordpress-db
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress_password
MYSQL_ROOT_PASSWORD: root_password
volumes:
- db_data:/var/lib/mysql
networks:
- wp_network
restart: unless-stopped
networks:
wp_network:
driver: bridge
volumes:
wordpress_data:
db_data:
執行命令:
# 啟動服務
docker-compose up -d
# 查看狀態
docker-compose ps
# 停止服務
docker-compose down
Docker 基本設定與效能優化
1. 調整 Docker Desktop 資源配置
Windows/macOS 使用者:
- 開啟 Docker Desktop
- 點選設定圖示 ⚙️
- 進入 Resources 分頁
- 建議設定:
- CPUs:系統核心數的 50-75%
- Memory:至少 4GB,建議 8GB
- Swap:2GB
- Disk image size:至少 40GB
2. 設定 Docker 映像檔加速(提升下載速度)
Linux 使用者:
# 編輯 Docker 設定檔
sudo nano /etc/docker/daemon.json
# 加入以下內容(使用國內映像源)
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
# 重新啟動 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 啟用 BuildKit(加速映像檔建置)
# Linux/macOS
export DOCKER_BUILDKIT=1
# Windows PowerShell
$env:DOCKER_BUILDKIT=1
# 永久設定(Linux/macOS)
echo "export DOCKER_BUILDKIT=1" >> ~/.bashrc
source ~/.bashrc
4. 定期清理 Docker 資源
# 查看 Docker 空間使用
docker system df
# 清理未使用的容器、網路、映像檔
docker system prune -a
# 清理包含 volumes 的所有未使用資源(謹慎使用)
docker system prune -a --volumes
# 自動清理(加入 crontab)
# 每週日凌晨 2 點自動清理
echo "0 2 * * 0 docker system prune -af" | crontab -
Docker 常見問題與解決方案
問題 1:Docker Desktop 無法啟動(Windows)
錯誤訊息:WSL 2 installation is incomplete
解決方案:
# 1. 更新 WSL 核心
wsl --update
# 2. 確認虛擬化已啟用
Get-ComputerInfo -property "HyperV*"
# 3. 重設 WSL
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
# 4. 重新安裝 Docker Desktop
問題 2:權限被拒絕(Linux)
錯誤訊息:Got permission denied while trying to connect to the Docker daemon socket
解決方案:
# 確認使用者在 docker 群組中
groups $USER
# 如果不在,重新加入
sudo usermod -aG docker $USER
# 重新登入或執行
su - $USER
問題 3:容器無法連接網路
解決方案:
# 1. 檢查 Docker 網路
docker network ls
docker network inspect bridge
# 2. 重建預設網路
docker network prune
systemctl restart docker
# 3. 檢查防火牆規則
sudo iptables -L -n
# 4. 重設 iptables(謹慎)
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
問題 4:磁碟空間不足
解決方案:
# 1. 查看空間使用詳情
docker system df -v
# 2. 刪除所有停止的容器
docker container prune
# 3. 刪除未使用的映像檔
docker image prune -a
# 4. 刪除未使用的 volumes
docker volume prune
# 5. 完整清理
docker system prune -a --volumes
問題 5:Docker 執行緩慢
優化建議:
- 增加資源配置(Docker Desktop)
- 使用 .dockerignore 減少建置內容
- 多階段建置減少映像檔大小
- 使用快取加速建置過程
# 多階段建置範例
FROM node:16 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
FROM node:16-alpine
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY . .
CMD ["node", "index.js"]
Docker 安全性最佳實踐
1. 保持 Docker 更新
# Ubuntu/Debian
sudo apt-get update && sudo apt-get upgrade docker-ce
# CentOS/RHEL
sudo yum update docker-ce
# 檢查版本
docker version
2. 映像檔安全掃描
# 使用 Docker Scout 掃描漏洞
docker scout cves nginx:latest
# 使用 Trivy 掃描(第三方工具)
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
aquasec/trivy image nginx:latest
3. 執行時安全設定
# 以非 root 使用者執行
docker run --user 1000:1000 nginx
# 唯讀檔案系統
docker run --read-only nginx
# 限制資源使用
docker run \
--memory="256m" \
--memory-swap="256m" \
--cpus="0.5" \
--pids-limit=100 \
nginx
# 停用危險權限
docker run \
--security-opt=no-new-privileges \
--cap-drop=ALL \
--cap-add=NET_BIND_SERVICE \
nginx
4. 網路隔離
# 建立自定義網路
docker network create --driver bridge secure-network
# 執行容器時指定網路
docker run --network secure-network nginx
5. 機密資料管理
# 使用 Docker Secrets(Swarm 模式)
echo "my_password" | docker secret create db_password -
# 使用環境變數檔案
docker run --env-file .env nginx
# .env 檔案內容
# DATABASE_PASSWORD=secure_password
# API_KEY=your_api_key
驗證 Docker 安裝成功的檢查清單
完成安裝後,請依序執行以下命令確認安裝成功:
# 1. 檢查 Docker 版本
docker --version
# ✅ 應顯示:Docker version 24.x.x
# 2. 檢查 Docker 服務狀態(Linux)
sudo systemctl status docker
# ✅ 應顯示:active (running)
# 3. 執行測試容器
docker run hello-world
# ✅ 應顯示:Hello from Docker!
# 4. 檢查 Docker Compose
docker compose version
# ✅ 應顯示:Docker Compose version v2.x.x
# 5. 列出 Docker 資訊
docker info
# ✅ 應顯示系統詳細資訊
# 6. 測試網路功能
docker run --rm alpine ping -c 4 google.com
# ✅ 應成功 ping 到 google.com
# 7. 測試映像檔拉取
docker pull nginx:alpine
# ✅ 應成功下載映像檔
# 8. 測試容器執行
docker run -d -p 8080:80 nginx:alpine
# ✅ 開啟瀏覽器訪問 http://localhost:8080
總結與後續學習資源
恭喜您成功安裝 Docker!現在您已經擁有了強大的容器化平台。以下是一些建議的後續步驟:
下一步學習建議
- 學習 Dockerfile:建立自定義映像檔
- 掌握 Docker Compose:管理多容器應用
- 了解 Docker Networks:容器網路配置
- 探索 Docker Volumes:資料持久化方案
- 學習 Docker Swarm/Kubernetes:容器編排
推薦學習資源
- 📚 Docker 官方文檔:最權威的參考資料
- 🎮 Play with Docker:免費線上練習環境
- 🎓 Docker 官方教學:互動式學習教程
- 📦 Docker Hub:探索數百萬個容器映像
- 💬 Docker 社群論壇:獲得社群支援
- 📖 Dockerfile 最佳實踐:編寫高效 Dockerfile
- 🔧 Awesome Docker:Docker 資源大全
常用 Docker 命令速查表
# 映像檔操作
docker images # 列出所有映像檔
docker pull [image] # 下載映像檔
docker build -t [name] . # 建立映像檔
docker rmi [image] # 刪除映像檔
# 容器操作
docker ps # 列出執行中容器
docker ps -a # 列出所有容器
docker run [image] # 執行新容器
docker start [container] # 啟動容器
docker stop [container] # 停止容器
docker restart [container] # 重啟容器
docker rm [container] # 刪除容器
docker logs [container] # 查看日誌
docker exec -it [container] bash # 進入容器
# 系統維護
docker system df # 查看空間使用
docker system prune # 清理資源
docker stats # 即時資源監控
透過本教學,您已經成功在 Windows、macOS 或 Linux 上安裝了 Docker。無論您是開發人員、系統管理員還是 DevOps 工程師,Docker 都將成為您提升工作效率的強大工具。開始享受容器化帶來的便利吧!