跳轉到主要內容
Docker WSL 2 Windows Docker 是開源的應用程式容器引擎,把應用程式與其相依套件打包進可移植的容器,發佈到任何支援的環境執行。容器以沙箱機制相互隔離,效能開銷極低。這份筆記在 Windows 以 WSL 2 為基礎,從 WSL 安裝走到 Docker 的基礎與進階操作。
建議使用 Windows 專業版(Pro)或企業版(Enterprise):具備 Hyper-V 與完整虛擬化功能,Docker Desktop 體驗最完整、設定最少踩雷。家用版(Home)仍可透過 WSL 2 後端執行 Docker,但缺少 Hyper-V 等部分功能,遇到進階虛擬化需求時較受限。

WSL 安裝

WSL(Windows Subsystem for Linux)讓你在 Windows 上執行 Linux 環境,是 Docker 在 Windows 的最佳運行基礎。
現代的 wsl --install 會自動啟用所需的 Windows 功能並安裝預設發行版,多數情況下不必手動逐項開啟功能。下方步驟 1 的手動開啟適用於需要精細控制或自動安裝失敗時。WSL 2 實際只需要「Virtual Machine Platform」與「Windows 子系統 Linux 版」兩項;Hyper-V 與 Windows Hypervisor Platform 並非必需(且 Windows 家用版沒有 Hyper-V)。
1

啟用必要功能(選用,自動安裝失敗時)

「控制台 → 程式集 → 開啟或關閉 Windows 功能」,勾選:
  • Virtual Machine Platform(虛擬機器平台,必要
  • Windows 子系統 Linux 版(必要
  • Hyper-V、Windows Hypervisor Platform(選用,非 WSL 2 必需)
按「確定」後重新啟動電腦。
2

安裝 WSL

以系統管理員開啟 PowerShell 或命令提示字元,執行:
wsl --update
wsl --install
此指令啟用 WSL 所需功能並安裝預設 Linux 發行版(Ubuntu)。完成後重新啟動電腦。
3

設定 Linux 使用者

首次啟動新發行版時會開啟主控台,等待檔案解壓縮(之後啟動更快),並建立使用者帳號與密碼。
4

驗證 WSL 安裝

檢查 WSL 版本與已安裝發行版:
wsl -l -v
5

設定 WSL 2 為預設版本

WSL 2 是執行 Docker 的推薦環境:
wsl --set-default-version 2
6

更改預設發行版(選用)

列出可下載的發行版,並以 -d 安裝指定版本:
wsl --list --online
wsl --install -d <發行版本名稱>
7

以 root 啟動(步驟 3 未設定使用者時)

wsl --install 後未出現設定使用者名稱與密碼的提示,可先以 root 進入再手動建立帳號:
wsl.exe --user root
8

最佳化 WSL 2 資源(選用)

編輯 C:\Users\<你的使用者名稱>\.wslconfig 限制 WSL 2 的記憶體與處理器。[wsl2] 區段標頭不可省略,否則設定不生效:
[wsl2]
memory=8GB      # WSL 2 虛擬機器記憶體上限
processors=16   # WSL 2 虛擬機器可用的虛擬處理器數
swap=8GB        # swap 空間大小
改完以 wsl --shutdown 重啟 WSL 套用。
9

整合 VS Code 與 Windows Terminal(選用)

VS Code 安裝後會自動與 WSL 整合,可在 WSL 中編輯與編譯。Windows Terminal 則方便在多個 Linux 終端機與 PowerShell 間切換。

Docker 安裝

在 Windows 以 Docker Desktop 搭配 WSL 2 引擎使用 Docker。
1

安裝 Docker Desktop

Docker 官方 下載安裝程式並依指示安裝,留意系統需求
2

啟動 Docker Desktop

安裝完成後從 Windows「開始」選單啟動。
3

啟用 WSL 2 引擎與整合

設定(右上齒輪)→「General」勾選「Use the WSL 2 based engine」;「Resources → WSL Integration」選擇要啟用 Docker 整合的發行版,按「Apply & Restart」。
4

驗證 Docker

在 WSL 的 Linux 終端機執行:
docker run hello-world
docker version
裝好後在 WSL 終端機跑驗證,成功時應該看到這樣的輸出:
Docker Desktop 對大型企業(員工數或營收超過官方門檻)需付費訂閱授權,個人與小型團隊可免費使用。詳見 Docker 官方授權條款。

Docker 基礎操作

核心概念

唯讀模板,包含執行應用所需的程式碼、執行環境、函式庫與設定。可想成一張「安裝光碟」。
docker run 啟動容器時常用選項:容器名稱(--name)、連接埠映射(-p 主機:容器)、掛載卷(-v 主機目錄:容器目錄,持久化資料)、環境變數(-e,如連線資訊、API 金鑰)。

常用指令

指令說明範例
docker run啟動一個容器docker run -it --name my_ubuntu ubuntu bash
docker build建立映像檔docker build -t my-image .
docker ps列出運行中的容器(-a 含已停止)docker ps -a
docker images列出所有映像檔docker images
docker stop停止容器docker stop my_container
docker rm刪除容器docker rm my_container
docker rmi刪除映像檔docker rmi my-image
docker exec在運行中的容器執行指令docker exec -it my_container bash
docker restart重新啟動容器docker restart my_container
docker update --restart=always設定容器開機自動重啟docker update --restart=always my_container
docker <COMMAND> --help顯示特定指令說明docker run --help

建立映像檔與運行容器

1

建立 Dockerfile

FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
CMD ["python3", "-c", "print('Hello, world!')"]
2

建立映像檔

docker build -t my-python-image .
3

運行容器

docker run my-python-image

Docker 進階技巧

  • 客製化映像檔:用 Dockerfile 定義基礎映像、複製檔案、安裝特定軟體版本與相依,建出符合需求的映像檔。
  • Volume 持久化資料:用 Docker Volume 把容器資料持久化到主機或外部儲存,容器刪除後資料仍在。
  • 網路設定:Docker 提供 bridge / host / overlay 等網路模式,控制容器間通訊與對外連線。
  • Docker Hub:Docker 官方的雲端映像檔 Registry,可拉取他人映像檔,也可推送自己的映像檔分享。

相關連結