เลือกหัวข้ออ่าน

🤖 คู่มือการติดตั้งและใช้งาน Ollama Docker ด้วย Nvidia GPU

🎯 ภาพรวมระบบ

🚀 สิ่งที่คุณจะได้รับ:
ระบบ AI ท้องถิ่นที่สมบูรณ์ด้วย Ollama + Open WebUI พร้อม GPU acceleration สำหรับประสิทธิภาพสูงสุด

⚡ GPU Acceleration

ใช้ประโยชน์จาก Nvidia GPU เต็มที่สำหรับการประมวลผล LLM ที่เร็วขึ้น

Ready

🌐 Web Interface

Open WebUI ที่ใช้งานง่าย สำหรับแชทกับ AI โดยไม่ต้องใช้ command line

Included

💾 Persistent Storage

ข้อมูลและโมเดลจะไม่หายเมื่อ restart container

Secured

🛠️ Management Tools

Scripts สำหรับจัดการระบบง่ายๆ ผ่าน Windows Batch และ PowerShell

Tools

📋 ข้อกำหนดเบื้องต้น

1ระบบปฏิบัติการ

  • Windows 10/11 with WSL2
  • RAM อย่างน้อย 8GB (แนะนำ 16GB+)
  • พื้นที่ดิสก์ว่างอย่างน้อย 50GB

2Nvidia GPU

⚠️ สำคัญ: ต้องมี Nvidia GPU ที่รองรับ CUDA และ driver ที่อัพเดตแล้ว
ตรวจสอบ GPU
nvidia-smi

3Docker Desktop

  • Docker Desktop for Windows
  • WSL2 integration enabled
  • Memory allocation: 8GB+ (ใน Docker Desktop Settings)

4NVIDIA Container Toolkit

การติดตั้งใน WSL2
# เพิ่ม repository
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# ติดตั้ง
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# กำหนดค่า Docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

⚙️ การติดตั้ง

Download ไฟล์ Docker Compose
✅ ไฟล์ทั้งหมดพร้อมใช้งานแล้วที่: D:\Docker\ollama

โครงสร้างไฟล์ที่ติดตั้งให้

File Structure
D:\Docker\ollama\
├── docker-compose.yml          # การกำหนดค่าหลัก (GPU)
├── docker-compose-cpu.yml      # การกำหนดค่าสำรอง (CPU)
├── .env.example                # ตัวอย่างการกำหนดค่า
├── manage-ollama.bat           # Script จัดการ (Windows)
├── manage-ollama.ps1           # Script จัดการ (PowerShell)
├── README.md                   # คู่มือใช้งานฉบับเต็ม
├── TROUBLESHOOTING.md          # คู่มือแก้ไขปัญหา
└── QUICKSTART.md              # คู่มือเริ่มต้นอย่างรวดเร็ว

การกำหนดค่า Docker Compose

docker-compose.yml
version: '3.8'

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    environment:
      - OLLAMA_KEEP_ALIVE=24h
      - NVIDIA_VISIBLE_DEVICES=all
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: ["gpu"]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    ports:
      - "3000:8080"
    volumes:
      - open_webui_data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - ollama

volumes:
  ollama_data:
  open_webui_data:

🚀 เริ่มต้นใช้งาน

1เริ่มต้นระบบ

🖥️ วิธีที่ 1: ใช้ Management Script

Windows Command Prompt
cd D:\Docker\ollama
manage-ollama.bat
PowerShell
cd D:\Docker\ollama
.\manage-ollama.ps1

⚡ วิธีที่ 2: Docker Compose โดยตรง

Quick Start
cd D:\Docker\ollama
docker-compose up -d

2ตรวจสอบสถานะ

Status Check
# ตรวจสอบ containers
docker-compose ps

# ตรวจสอบ logs
docker-compose logs ollama

# ตรวจสอบ GPU ใน container
docker exec -it ollama nvidia-smi
💡 เคล็ดลับ: รอประมาณ 1-2 นาทีให้ services เริ่มต้นเสร็จสิ้นก่อนใช้งาน

🧠 การจัดการโมเดล

โมเดลที่แนะนำ

โมเดล ขนาดไฟล์ VRAM ต้องการ ความเร็ว คุณภาพ จุดเด่น
llama2:7b 4.1GB 8GB ⚡⚡⚡ ⭐⭐⭐ เริ่มต้นใช้งาน
codellama:7b 3.8GB 8GB ⚡⚡⚡ ⭐⭐⭐ เขียนโค้ด
llama2:13b 7.4GB 16GB ⚡⚡ ⭐⭐⭐⭐ คุณภาพดี
mistral:7b 4.1GB 8GB ⚡⚡⚡⚡ ⭐⭐⭐ เร็วและมีประสิทธิภาพ
llama2:70b 40GB 48GB+ ⭐⭐⭐⭐⭐ คุณภาพสูงสุด

3ดาวน์โหลดโมเดลแรก

🔽 วิธีที่ 1: ผ่าน Container

Interactive Mode
# เข้าสู่ container
docker exec -it ollama bash

# ดาวน์โหลดโมเดล (แนะนำเริ่มต้นด้วย llama2:7b)
ollama pull llama2:7b

# ทดสอบการใช้งาน
ollama run llama2:7b

⚡ วิธีที่ 2: ผ่าน Management Script

เลือก option 5 (Download Model) จาก management script

คำสั่งจัดการโมเดล

Model Management
# ดูรายการโมเดลที่ติดตั้งแล้ว
docker exec -it ollama ollama list

# ลบโมเดลที่ไม่ใช้
docker exec -it ollama ollama rm llama2:70b

# ดูข้อมูลโมเดล
docker exec -it ollama ollama show llama2:7b
⚠️ คำเตือน: ตรวจสอบ VRAM ของ GPU ก่อนดาวน์โหลดโมเดลขนาดใหญ่เพื่อป้องกันปัญหาหน่วยความจำไม่พอ

💻 การใช้งาน

🌐 การใช้งานผ่าน Web Interface

Open WebUI

  1. เปิดเบราว์เซอร์ไปที่ http://localhost:3000
  2. สร้างบัญชีใหม่ (Registration)
  3. เลือกโมเดลจาก dropdown menu
  4. เริ่มแชทกับ AI

🔧 การใช้งานผ่าน API

API Examples
# ทดสอบ API พื้นฐาน
curl http://localhost:11434/api/tags

# สร้างข้อความ
curl http://localhost:11434/api/generate -d '{
  "model": "llama2:7b",
  "prompt": "Write a hello world program in Python",
  "stream": false
}'

# แชทแบบ conversation
curl http://localhost:11434/api/chat -d '{
  "model": "llama2:7b",
  "messages": [
    {
      "role": "user",
      "content": "Hello! How are you?"
    }
  ]
}'

📱 การใช้งานผ่าน Command Line

Interactive Chat
# เข้าสู่โหมดแชท
docker exec -it ollama ollama run llama2:7b

# ออกจากโหมดแชท
/bye

# รันคำสั่งเดียว
docker exec -it ollama ollama run llama2:7b "Explain quantum computing in simple terms"

🛠️ การจัดการระบบ

คำสั่งที่ใช้บ่อย

การกระทำ คำสั่ง คำอธิบาย
เริ่มต้น docker-compose up -d เริ่มต้น services ทั้งหมด
หยุด docker-compose down หยุด services
รีสตาร์ท docker-compose restart รีสตาร์ท services
ดู logs docker-compose logs -f ติดตาม logs แบบ real-time
ดูสถานะ docker-compose ps แสดงสถานะ containers
อัพเดต docker-compose pull && docker-compose up -d อัพเดต images

การใช้ Management Scripts

🪟 Windows Batch Script

cd D:\Docker\ollama
manage-ollama.bat

เมนูแบบ interactive สำหรับผู้ใช้ทั่วไป

⚡ PowerShell Script

cd D:\Docker\ollama
.\manage-ollama.ps1

Script ขั้นสูงพร้อม GPU monitoring

การ Backup และ Restore

Backup Models
# สำรองข้อมูลโมเดล
docker run --rm -v ollama_data:/data -v ${PWD}:/backup alpine tar czf /backup/ollama-backup.tar.gz /data

# กู้คืนข้อมูล
docker run --rm -v ollama_data:/data -v ${PWD}:/backup alpine tar xzf /backup/ollama-backup.tar.gz -C /

🔧 แก้ไขปัญหา

ปัญหาที่พบบ่อย

❌ GPU ไม่ทำงาน

อาการ: โมเดลทำงานช้า, ไม่เห็น GPU usage

วิธีแก้:

# ตรวจสอบ GPU บน host
nvidia-smi

# ตรวจสอบ GPU ใน container  
docker exec -it ollama nvidia-smi

# แก้ไข NVIDIA Container Toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

⚠️ Port ถูกใช้งานแล้ว

อาการ: Error: Port 11434 is already in use

วิธีแก้:

# ตรวจสอบ process ที่ใช้ port
netstat -ano | findstr :11434

# เปลี่ยน port ใน docker-compose.yml
ports:
  - "11435:11434"  # เปลี่ยนจาก 11434 เป็น 11435

💾 หน่วยความจำไม่พอ

อาการ: Container restart, Out of memory errors

วิธีแก้:

  • เพิ่ม memory ใน Docker Desktop Settings
  • ใช้โมเดลขนาดเล็กกว่า (llama2:7b แทน llama2:70b)
  • ปิดโปรแกรมอื่นที่ใช้ memory มาก

คำสั่งวินิจฉัยปัญหา

🔍 ตรวจสอบระบบ

# ตรวจสอบ Docker
docker version
docker info

# ตรวจสอบ containers
docker-compose ps
docker stats

# ตรวจสอบ GPU
nvidia-smi
docker exec -it ollama nvidia-smi

# ตรวจสอบ logs
docker-compose logs ollama
docker-compose logs open-webui

การล้างข้อมูลและเริ่มใหม่

⚠️ คำเตือน: คำสั่งเหล่านี้จะลบข้อมูลทั้งหมด
Complete Reset
# หยุดและลบ containers
docker-compose down

# ลบ volumes (โมเดลจะหายทั้งหมด!)
docker-compose down -v

# ลบ images ที่ไม่ใช้
docker image prune -a

# ลบทุกอย่างที่ไม่ใช้
docker system prune -a --volumes

🎉 ขอแสดงความยินดี!

คุณได้ติดตั้ง Ollama Docker ด้วย Nvidia GPU support เรียบร้อยแล้ว! ตอนนี้คุณสามารถใช้งาน AI ขั้นสูงบนคอมพิวเตอร์ของคุณเองได้แล้ว

Happy AI Chatting! 🤖✨

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้

  • คุกกี้เพื่อการวิเคราะห์

    คุกกี้ประเภทนี้จะทำการเก็บข้อมูลการใช้งานเว็บไซต์ของคุณ เพื่อเป็นประโยชน์ในการวัดผล ปรับปรุง และพัฒนาประสบการณ์ที่ดีในการใช้งานเว็บไซต์ ถ้าหากท่านไม่ยินยอมให้เราใช้คุกกี้นี้ เราจะไม่สามารถวัดผล ปรับปรุงและพัฒนาเว็บไซต์ได้
    รายละเอียดคุกกี้

  • คุกกี้เพื่อปรับเนื้อหาให้เข้ากับกลุ่มเป้าหมาย

    คุกกี้ประเภทนี้จะเก็บข้อมูลต่าง ๆ รวมทั้งข้อมูลส่วนบุคคลเกี่ยวกับตัวคุณเพื่อเราสามารถนำมาวิเคราะห์ และนำเสนอเนื้อหา ให้ตรงกับความเหมาะสมกับความสนใจของคุณ ถ้าหากคุณไม่ยินยอมเราจะไม่สามารถนำเสนอเนื้อหาและโฆษณาได้ไม่ตรงกับความสนใจของคุณ
    รายละเอียดคุกกี้

บันทึกการตั้งค่า