---
title: "Docker 安裝AI大型語言模型 Ollama ，並實測比較CPU與GPU硬體加速效能"
description: "以 Docker Compose 在 Windows WSL2 環境部署 Ollama + Open WebUI，並實測 CPU 與 GPU（RTX 3080）推論速度差異，說明 NVIDIA Container Toolkit 設定方式。"
canonical_url: "https://blog.markkulab.net/post/build-your-ollama-ai-with-hardware-acceleration"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/author/mark-ku"
site: "Mark Ku's Blog"
date_published: "2024-08-27 01:01:35 +0800"
category: "AI"
tags: ["ollama", "ai", "gpu", "docker", "llm", "nvidia"]
language: "zh-TW"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "轉載或引用請註明作者並附上原文連結"
---

# Docker 安裝AI大型語言模型 Ollama ，並實測比較CPU與GPU硬體加速效能

## 背景說明
過去使用 [Azure Open AI 來優化 SEO](https://blog.markkulab.net/build-your-ollama-ai-with-hardware-acceleration/)，但由於 Azure Open AI 每月僅有 $150 美金的額度，常在月底因 MSDN 額度不足而被停用。因此，我們開始尋找其他替代方案，最終選擇了 Facebook 開源的 Ollama。

## 安裝及設定
### 首先，建立 Docker Compose 檔案 (GPU 版本) - docker-compose.yml

### 2025/06/01 更新
```
version: '3.8'
services:
  ollama:
    image: ollama/ollama:latest
    ports:
      - 11434:11434
    volumes:
      - .:/code
      - ./ollama/ollama:/root/.ollama
    container_name: ollama
    pull_policy: always
    tty: true
    restart: always
    networks:
      - ollama-docker
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    depends_on:
      - ollama
    ports:
      - 8088:8080
    environment:
      - 'OLLAMA_API=http://ollama:11434/api'
    extra_hosts:
      - host.docker.internal:host-gateway
    restart: unless-stopped
    networks:
      - ollama-docker

networks:
  ollama-docker:
    external: false
```

## 建立啟動容器應用
```
docker compose up -d
```
## 訪問 loclahost:8080

![image](https://blog.markkulab.net/content/markku/posts/build-your-ollama-ai-with-hardware-acceleration/images/1.png)

## 設定>下載及安裝模型
![image](https://blog.markkulab.net/content/markku/posts/build-your-ollama-ai-with-hardware-acceleration/images/2.png)

## 安裝 Linux 子系統 (Windows PowerShell)
```
wsl --version
wsl --update
wsl --install
wsl --list
```
![image](https://blog.markkulab.net/content/markku/posts/build-your-ollama-ai-with-hardware-acceleration/images/3.png)

## 接著，開啟 Ubuntu 
![image](https://blog.markkulab.net/content/markku/posts/build-your-ollama-ai-with-hardware-acceleration/images/4.png)

## 在 Ubuntu 中執行以下命令
在 Ubuntu 中，執行以下命令來配置 NVIDIA 容器工具包：

```
sudo apt-get update
sudo apt-get install -y nvidia-cuda-toolkit nvidia-container-toolkit
```

## 在 Docker 中設定支援 GPU

     * 確保 Docker「**啟用 WSL2 整合**」
     * 打開 Docker Desktop → Settings → Resources → WSL integration → 打開 Ubuntu
     * Docker 新版 Enable GPU support** (預設啟用) => 這就不用設定了
	 * Docker enging 設定
![image](https://blog.markkulab.net/content/markku/posts/build-your-ollama-ai-with-hardware-acceleration/images/6.png)

```
"runtimes": {
    "nvidia": {
      "path": "nvidia-container-runtime",
      "runtimeArgs": []
    }
  }
```	 
## 測試 GPU 整合
確認 GPU 整合是否成功：
![image](https://blog.markkulab.net/content/markku/posts/build-your-ollama-ai-with-hardware-acceleration/images/5.png)
```
docker run --gpus all nvidia/cuda:11.5.2-base-ubuntu20.04 nvidia-smi
```

## 如何確定 Ollama 使用GPU 做運算，回到宿主機執行以下指令
```
docker exec -it ollama /bin/bash
ollama ps
```
![image](https://blog.markkulab.net/content/markku/posts/build-your-ollama-ai-with-hardware-acceleration/images/7.png)

## 實測結果
### 硬體規格: CPU 13900K + Nvidia TUF RTX 3080 + 64 GB + WIN 11
### 將先前給 Azure Open AI 產生SEO 的 prompt，去餵給Ollama 。

```
You are an SEO expert. Based on the page description provided below, generate an SEO-optimized title, meta description, and keywords. Ensure that the title is engaging and concise, the meta description summarizes the product effectively while enticing users to learn more, and the keywords are relevant to the product's features and market segment. Additionally, translate all content into the language specified by the given language code.
Company:Your company Desc ...
Ecommerce Page Description: Case: NZXT H5 Flow Gaming Gehäuse - Schwarz Processor: AMD Ryzen 5 5600X Processor (6x 3.7GHz/32MB L3 Cache) Memory: 16GB DDR4/3200MHz Memory(G.Skill ,Corsair,Kingston) Storage: Video Card: NVIDIA GeForce RTX 3050 - 8GB GDDR6X (VR-Ready) Motherboard: ASRock B450 PRO 4 ATX USB 3.1, SATA3, 1x M.2
Translate Target Language Code: en
FormatInstructions: Only the title, description and keywords of the json structure are returned. example :{"title":"","description":"","keywords":""} Please delete any other unnecessary information. Such as python code, Python Flask API, etc. Give me json result. Do not send back any other information such as python code, Python Flask API, etc.
```
### 性能比較
* CPU 版：1 分 10 秒 ~ 1 分 30 秒
* NVIDIA RTX MSI 2060 OG GPU 版: 30 秒左右
* NVIDIA RTX TUF 3080 GPU 版：不到 3 秒

## 參考資料
* [傻瓜 LLM 架設 - Ollama + Open WebUI 之 Docker Compose 懶人包](https://blog.darkthread.net/blog/ollam-open-webui/)
* [【CUDA】如何在 windows 上安装 Ollama 3 + open webui （docker + WSL 2 + ubuntu + nvidia-container）](https://blog.csdn.net/smileyan9/article/details/140391667)
* [如何优雅的使用ollama| 京东云技术团队](https://blog.csdn.net/jdcdev_/article/details/138800464)
* [Ollama常用模型合集](https://www.53ai.com/news/qianyanjishu/1201.html)
* [離線不怕隱私外洩！免費開源 AI 助手 Ollama 從安裝到微調，一支影片通通搞定！](https://www.youtube.com/watch?v=JpQC0W91E6k&t=397s)

---

## 關於本文與作者

本文出自 [Mark Ku's Blog](https://blog.markkulab.net/post/build-your-ollama-ai-with-hardware-acceleration)

授權條款： [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — 轉載或引用請註明作者並附上原文連結

### 關於作者

**[Mark Ku](https://blog.markkulab.net/author/mark-ku)** — Software Solution Provider

- 10+ 年資深軟體工程師，現為 AI 應用 Builder
- 專注大型平台架構設計，從北美電商到AI SaaS訂閱收費系統
- 結合 AI Agent 與自動化，打造高效可演進的產品技術基礎

### 作者開發的免費工具

以下工具皆可免費使用：

- [免費 PDF 簽名工具](https://blog.markkulab.net/tools/pdf-sign): 線上 PDF 簽名工具，瀏覽器內完成手繪、打字、上傳簽名，可拖曳放置、縮放、下載。所有處理都在你的裝置完成，檔案不會上傳。
- [VS Code Refactory](https://blog.markkulab.net/tools/refactory): Refactory 是一款 VS Code 重構擴充套件：34 個重構動作、37 條 code smell 檢查、Code Health 儀表板、18 種語言、534 支測試。懂你的專案慣例：介面放哪、DI 註冊寫在哪、'use client' 該不該加；還會用 git 修改頻率 × 複雜度排出「該先修哪個檔案」，並一鍵把壞味道交給你自己電腦上的 Claude Code 修。免費使用，原始碼不離開你的機器。
- [DB-Kit 資料庫管理工具](https://blog.markkulab.net/tools/db-kit): DB-Kit 是一個用 Tauri + Rust + React 打造的輕量跨平台資料庫管理工具，用單一一致的介面同時管理 MySQL、MariaDB、PostgreSQL、SQL Server、Oracle、SQLite、MongoDB、Redis、Kafka、Elasticsearch 與 RabbitMQ 十一種資料來源：連線密碼以 OS keychain 加密、SSH Tunnel、完整 CRUD、視覺化查詢建構器、多結果集同時顯示、跨連線資料傳輸與比對同步、Excel / CSV 匯入匯出、執行計畫視覺化、ER 圖、排程備份、SQL 壓力測試（p50～p99 延遲百分位）、15 條規則的 SQL 審查、Kafka 訊息瀏覽與監控告警；繁中 / 英文雙語介面，內建 AI 助手（自然語言生成 SQL、AI 審查與調校建議）與命令列工具 dbk。免費開源（MIT），提供 Windows / macOS / Linux 安裝檔。
- [VS Code Super Mermaid](https://blog.markkulab.net/tools/super-mermaid): Super Mermaid 是一款 VS Code 擴充套件：開箱即用的漂亮 Mermaid 圖表，自動上色、即時預覽、滑鼠平移縮放、PNG / SVG 高解析匯出，內建 21 種範本與多種主題。免費開源（MIT）。
- [React Super Mermaid](https://blog.markkulab.net/tools/react-super-mermaid): react-super-mermaid 是一個開源 React 元件庫：一行 <MermaidViewer> 即可渲染漂亮的 Mermaid 圖表，內建 colorful / sketch 主題、平移縮放、圖內搜尋、SVG / PNG 高解析匯出。輕量、SSR 安全、完整 TypeScript 型別。免費開源（MIT）。
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/tools/jira-super-mermaid): Atlassian Forge app：在 Jira issue 與 Confluence 內文直接寫 Mermaid 語法，畫流程圖、時序圖、狀態機與甘特圖。11 種圖表、SVG / PNG 匯出、明暗主題、完整中日韓文字支援。取得 Runs on Atlassian 資格：圖表存在你自己的站台，app 不呼叫任何第三方服務。免費，即將上架 Atlassian Marketplace。
- [Mermaid 線上預覽](https://blog.markkulab.net/tools/mermaid-preview): 在瀏覽器裡寫 Mermaid、即時看圖，整張圖表壓進網址就能分享。免註冊、不上傳伺服器，相容 mermaid.live 的分享連結。
- [React Intl Phone Number](https://blog.markkulab.net/tools/react-intl-phone-number): react-intl-phone-number 是一個開源 React 元件：framework-agnostic、不依賴 antd，提供 E.164 進出、可搜尋國旗 / 國碼下拉、可配置驗證等級（strict / mobile-strict / loose）、可主題化 CSS 與 i18n，電話邏輯由 google-libphonenumber 驅動。輕量、完整 TypeScript 型別。免費開源（MIT）。
- [Uptime Kuma Cluster](https://blog.markkulab.net/tools/uptime-kuma-cluster): 把單機版 Uptime Kuma 改造成高可用叢集：OpenResty + Lua 智慧負載平衡、MariaDB 共享狀態、健康檢查與自動 Failover，附叢集管理 REST API，一行 Docker Compose 啟動。免費開源（MIT）。
- [特教專案](https://blog.markkulab.net/education): 為特殊教育學生製作的學習教材

### 每日 Podcast

- [科技新鮮事](https://blog.markkulab.net/category/tech-news): 每日精選 AI 與科技趨勢，透過語音摘要快速掌握最新技術動態，涵蓋 AI 應用、軟體架構、DevOps 與工程實戰。 — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/category/ai-stock-chat): 每個交易日用 AI 分析台股盤勢，以雙人對話聊當天的盤中觀察與隔日預測。 — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml

### 電子報

[訂閱電子報](https://blog.markkulab.net/subscribe) — 第一時間收到新文章通知，無垃圾信、隨時可取消訂閱。
