# 在 VS Code 中使用 Docker 容器執行 Python
## 1. 設定 Docker 環境
在 VS Code 中,希望透過 **Docker 容器** 執行 Python 程式,並將輸出結果顯示於終端機。
## 2. 建立 `Dockerfile`
```dockerfile
# 使用 Python 官方映像
FROM python:3.11
# 設定工作目錄
WORKDIR /app
# 複製專案所有內容到容器內
COPY . .
# 預設執行 Python(可執行不同的 .py 檔)
ENTRYPOINT ["python"]
```
## 3. 建立映像檔(Image)
```sh
docker build -t <Image名稱> .
```
## 4. 執行 Python 檔案
```sh
docker run --rm <Image名稱> <要執行的檔案.py>
```
### 參數說明:
- `--rm`:執行完畢後,會自動刪除容器,避免佔用過多資源。
## 5. 更新程式碼後重啟映像檔(Image)
```sh
docker restart <容器ID/名稱>
```
## 6. 設定 Shell Alias(快速指令)
若不想每次輸入冗長的指令,可以在終端機設定快速指令。
### **Windows(PowerShell)設定**
```powershell
function pyc { docker run --rm <Image名稱> $args }
```
📌 **這裡的關鍵部分:**
- `function pyc { ... }` → 定義一個名為 `pyc` 的 PowerShell 函式。
- `docker run --rm <Image名稱> $args` → 執行 Docker 容器,並傳入 `$args`(命令列參數)。
此設定只會在**當前終端機會話**有效,關閉終端機後會消失。
### **使用方式**
```sh
pyc for.py
```
## 7. 上傳映像檔到 Docker Hub
若希望共享 Image,可透過 `docker tag` 及 `docker push` 上傳至 Docker Hub。
```sh
docker tag docker-python <使用者名稱/資料庫名稱>
docker push <使用者名稱/資料庫名稱>
```
這樣其他人就可以直接從 Docker Hub 下載並使用該 Python 環境。
## 8. 下載映像檔
若希望共享 Image,可透過Docker Hub下載下來並使用。
```sh
docker pull <使用者名稱/資料庫名稱>
```
## 9. 清理無用的資源
```sh
docker system prune -f # 清理所有未使用的容器、網路、映像檔等
docker container prune -f # 删除所有已停止的容器
docker image prune -a -f # 删除所有未被使用的映像檔
docker volume prune -f # 删除未使用的目錄/卷
docker network prune -f # 删除未使用的網路
```