Docker 安裝教學 2025:Windows、Mac、Linux 完整指南【含 Docker Compose】

學習如何在 Windows、macOS 和 Linux 上安裝 Docker 和 Docker Compose。本教學包含詳細步驟、系統需求、常見問題解決和安全性建議,適合初學者和進階使用者。2025年最新版本

什麼是 Docker?為什麼需要 Docker?

Docker 是目前最流行的容器化平台,能夠將應用程式及其相依套件打包成輕量級、可移植的容器。根據 2025 年的統計,超過 65% 的企業正在使用 Docker 進行應用程式部署。

Docker 與虛擬機器的差異

相較於傳統虛擬機器(VM),Docker 容器具有以下優勢:

  • 啟動速度:Docker 容器僅需幾秒即可啟動,VM 需要數分鐘
  • 資源消耗:容器共享主機 OS 核心,記憶體使用量減少 50-70%
  • 部署效率:一個映像檔可在任何環境執行,實現「一次建置,到處執行」
  • 開發便利:解決「在我電腦上可以跑」的問題

Docker 核心概念快速理解

在開始安裝 Docker 之前,您需要了解四個核心概念:

  1. 映像檔(Docker Image):應用程式的唯讀模板,類似安裝光碟
  2. 容器(Docker Container):映像檔的執行實例,類似已安裝的程式
  3. 資料卷(Docker Volume):持久化儲存資料的機制,避免資料遺失
  4. 網路(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

  1. 前往 Docker 官方網站
  2. 點選「Download for Windows」下載 Docker Desktop Installer
  3. 檔案大小約 500MB,下載時間視網路速度而定

步驟 3:安裝 Docker Desktop

  1. 執行下載的 Docker Desktop Installer.exe
  2. 在安裝精靈中勾選以下選項:
    • ✅ Use WSL 2 instead of Hyper-V
    • ✅ Add shortcut to desktop
  3. 點選「Ok」開始安裝
  4. 安裝完成後,點選「Close and restart」重新啟動電腦

步驟 4:初始設定與驗證

重新啟動後,Docker Desktop 會自動啟動:

  1. 接受服務條款
  2. 選擇是否登入 Docker Hub(可跳過)
  3. 開啟 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 處理器類型選擇:

如何確認處理器類型?

  1. 點選左上角 圖示 → 關於這台 Mac
  2. 查看「晶片」或「處理器」資訊

步驟 2:安裝 Docker Desktop

方法一:圖形化介面安裝

  1. 開啟下載的 .dmg 檔案
  2. 將 Docker 圖示拖曳到 Applications 資料夾
  3. 從 Applications 資料夾開啟 Docker
  4. 首次啟動時,輸入系統密碼以安裝輔助工具

方法二:使用 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 使用者:

  1. 開啟 Docker Desktop
  2. 點選設定圖示 ⚙️
  3. 進入 Resources 分頁
  4. 建議設定:
    • 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 執行緩慢

優化建議

  1. 增加資源配置(Docker Desktop)
  2. 使用 .dockerignore 減少建置內容
  3. 多階段建置減少映像檔大小
  4. 使用快取加速建置過程
# 多階段建置範例
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!現在您已經擁有了強大的容器化平台。以下是一些建議的後續步驟:

下一步學習建議

  1. 學習 Dockerfile:建立自定義映像檔
  2. 掌握 Docker Compose:管理多容器應用
  3. 了解 Docker Networks:容器網路配置
  4. 探索 Docker Volumes:資料持久化方案
  5. 學習 Docker Swarm/Kubernetes:容器編排

推薦學習資源

常用 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 都將成為您提升工作效率的強大工具。開始享受容器化帶來的便利吧!


404NOTE
404NOTE
文章: 40

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *