Docker WSL 2 Windows
Docker 是開源的應用程式容器引擎,把應用程式與其相依套件打包進可移植的容器,發佈到任何支援的環境執行。容器以沙箱機制相互隔離,效能開銷極低。這份筆記在 Windows 以 WSL 2 為基礎,從 WSL 安裝走到 Docker 的基礎與進階操作。
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)。啟用必要功能(選用,自動安裝失敗時)
「控制台 → 程式集 → 開啟或關閉 Windows 功能」,勾選:
- Virtual Machine Platform(虛擬機器平台,必要)
- Windows 子系統 Linux 版(必要)
- Hyper-V、Windows Hypervisor Platform(選用,非 WSL 2 必需)
最佳化 WSL 2 資源(選用)
編輯 改完以
C:\Users\<你的使用者名稱>\.wslconfig 限制 WSL 2 的記憶體與處理器。[wsl2] 區段標頭不可省略,否則設定不生效:wsl --shutdown 重啟 WSL 套用。Docker 安裝
在 Windows 以 Docker Desktop 搭配 WSL 2 引擎使用 Docker。啟用 WSL 2 引擎與整合
設定(右上齒輪)→「General」勾選「Use the WSL 2 based engine」;「Resources → WSL Integration」選擇要啟用 Docker 整合的發行版,按「Apply & Restart」。
Docker 基礎操作
核心概念
- 映像檔 Image
- 容器 Container
- Dockerfile
唯讀模板,包含執行應用所需的程式碼、執行環境、函式庫與設定。可想成一張「安裝光碟」。
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 |
建立映像檔與運行容器
Docker 進階技巧
- 客製化映像檔:用 Dockerfile 定義基礎映像、複製檔案、安裝特定軟體版本與相依,建出符合需求的映像檔。
- Volume 持久化資料:用 Docker Volume 把容器資料持久化到主機或外部儲存,容器刪除後資料仍在。
- 網路設定:Docker 提供 bridge / host / overlay 等網路模式,控制容器間通訊與對外連線。
- Docker Hub:Docker 官方的雲端映像檔 Registry,可拉取他人映像檔,也可推送自己的映像檔分享。
相關連結
- Docker 官方文件:docs.docker.com
- WSL 官方文件:learn.microsoft.com/windows/wsl