如何在 WSL 2 + Docker 環境中開發 Django:安裝順序與最佳實踐
更新日期: 2025 年 3 月 4 日
本文為 Docker 進階介紹 系列文,第 5 篇:
- 初學者指南:深入了解 WSL 2(Windows Subsystem for Linux 2)
- 虛擬機器(VM)是什麼?完整入門指南
- 什麼是核心(Kernel)?初學者完整指南
- Docker vs. 虛擬機器(VM):初學者完整比較指南
- 如何在 WSL 2 + Docker 環境中開發 Django:安裝順序與最佳實踐 👈進度
- 初學者指南:什麼是 Dockerfile?—— 以實際範例解析
- Docker Compose 初學者指南:使用範例解析
- Docker Compose:up vs up -d 的差異與應用
- Linux 常見指令入門:從 sudo 到日常操作
- Linux 解決方案:VSCode 無法儲存檔案權限問題
閱讀本文前,建議先理解 Docker 基本介紹系列文 相關概念。
當你準備在 Windows 上使用 Docker 開發 Django 時,可能會有這些疑問:
- 我應該先安裝 Python,還是先寫 Dockerfile?
- WSL 2、Docker、Python 之間的關係是什麼? 應該按照什麼順序安裝?
- Django 是 Python 的 Web 框架,我還需要在 Windows 上安裝 Python 嗎?
如果你是新手,這篇文章將詳細介紹 如何規劃 WSL 2、Docker 和 Python,並提供最佳的 安裝順序,確保你的開發環境高效且穩定!
WSL 2、Docker、Python 之間的關係
在 Windows 上開發 Django,主要有 兩種方式:
- 直接在 Windows 上安裝 Python 與 Django(不建議)
- 使用 WSL 2 + Docker,建立可攜式的 Django 開發環境(最佳方案)
為什麼不建議直接在 Windows 上安裝 Python?
- Django 是 Linux 友好的框架,而 Windows 上的 Python 可能會遇到相容性問題。
- Docker 提供獨立的開發環境,讓你的專案更容易管理,且與正式部署環境一致。
WSL 2、Docker、Python 之間的關係
技術 | 角色 | 作用 |
---|---|---|
WSL 2 | 基礎環境 | 讓 Windows 可以運行真正的 Linux,提供最佳效能 |
Docker | 容器管理 | 負責啟動獨立的 Django 環境,隔離 Python 依賴 |
Python | 開發語言 | Django 需要 Python,但 Python 應該安裝在 Docker 容器內,而不是 Windows 本機 |
結論:
✅ 先安裝 WSL 2,讓 Windows 能夠支援 Linux
✅ 再安裝 Docker,使用容器來運行 Django,而不是直接安裝 Python
✅ 最後撰寫 Dockerfile,在容器內安裝 Python & Django,而不是在 Windows 上安裝 Python
WSL 2、Docker、Django 的安裝順序
為了確保環境穩定,建議按照以下順序安裝:
安裝 WSL 2
為什麼先安裝 WSL 2?
- Windows 本身無法直接運行 Linux,但 WSL 2 可以 提供完整的 Linux 環境,讓 Docker 可以使用 Linux 核心。
- WSL 2 讓 Docker 運行更快、更高效,因為它比 Hyper-V 更輕量。
安裝 WSL 2
- 開啟 PowerShell(系統管理員權限),輸入:
wsl --install
- 安裝 Ubuntu(推薦) 作為 WSL 2 的 Linux 發行版:
wsl --set-default-version 2
- 確認 WSL 2 是否已啟動
wsl -l -v
如果顯示:
NAME STATE VERSION
Ubuntu Running 2
代表 WSL 2 已啟動。
安裝 Docker
為什麼第二步安裝 Docker?
- Docker 需要依賴 WSL 2,因此必須先安裝 WSL 2。
- Docker 允許我們在容器內安裝 Python,不影響 Windows 環境。
安裝 Docker
- 下載 Docker Desktop:官方網站
- 安裝完成後,開啟 Docker Desktop > Settings > General,啟用: ✅ “Use the WSL 2 based engine”
- 測試 Docker 是否正常運行:
docker run hello-world
如果成功,會顯示:
Hello from Docker!
撰寫 Dockerfile 並安裝 Python
為什麼第三步撰寫 Dockerfile?
- 不要直接在 Windows 或 WSL 內安裝 Python,而是讓 Docker 幫你管理 Python 環境。
- Dockerfile 讓你的開發環境 與正式環境一致,避免「本機能跑、伺服器不能跑」的問題。
建立 Django Docker 環境
- 建立專案資料夾
mkdir my-django-project
cd my-django-project
- 建立 Dockerfile 在
my-django-project
內建立Dockerfile
,內容如下:
# 使用官方 Python 3.9 映像檔
FROM python:3.9
# 設定工作目錄
WORKDIR /app
# 複製 requirements.txt(列出 Django 依賴)
COPY requirements.txt requirements.txt
# 安裝 Django 及相關依賴
RUN pip install -r requirements.txt
# 開啟容器時的預設命令
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
- 建立
requirements.txt
echo "django" > requirements.txt
- 建立 Docker 容器
docker build -t my-django-app .
- 啟動 Django 開發伺服器
docker run -p 8000:8000 my-django-app
現在你可以在 http://localhost:8000
訪問 Django 專案 🎉!
最佳開發流程
當你開發 Django 專案時,建議遵循這個流程:
1️⃣ 開啟 WSL 2(確保 WSL 2 運行)
2️⃣ 在 WSL 2 內 clone Django 專案
git clone https://github.com/yourusername/your-django-project.git
cd your-django-project
3️⃣ 使用 VS Code 開啟專案
code .
4️⃣ 啟動 Django Docker 容器
docker-compose up
5️⃣ 進入 Django 容器
docker exec -it my-django-app bash
你現在已經進入 Django 的 Linux 環境,可以執行:
python manage.py migrate
python manage.py createsuperuser
總結
- 先安裝 WSL 2,讓 Windows 支援 Linux 環境。
- 再安裝 Docker,確保所有開發工具(Python、Django)都在 Docker 容器內運行。
- 最後撰寫 Dockerfile,讓開發環境與正式環境一致,避免版本衝突。
這樣的開發方式可以:
✅ 保持 Windows 系統乾淨,不安裝 Python
✅ 讓 Django 環境與正式部署環境保持一致
✅ 確保開發環境穩定,避免 Python 版本衝突
如果你是 Django 開發者,強烈建議你使用 WSL 2 + Docker,這是最強大的開發組合 🚀!