Instrukcja obsługi Jak wdrożyć Ollama na urządzeniu QNAP NAS przy użyciu Container Station

QTS, QuTS hero

Container Station



Scenariusz​


Chcesz uruchamiać duże modele językowe (LLM) lokalnie na swoim urządzeniu QNAP NAS na potrzeby prywatnego czatu AI, asysty w pisaniu kodu lub analizy dokumentów bez przesyłania danych do chmury. Ollama to najpopoolrniejszy i najbardziej przyjazny dla początkujących silnik wnioskowania służący do tego celu. W tym samouczku wyjaśniono, jak wdrożyć Ollama na urządzeniu QNAP NAS przy użyciu Container Station.



Wymagania systemowe​


WymaganieSzczegóły
Aplikacja QNAPContainer Station 3.x lub nowsza
Architektura NASx86_64 (procesor Intel lub AMD)
(Obsługiwana jest tylko niewielka liczba modeli opartych na architekturze ARM.)
Pamięć
  • Co najmniej 8 GB (dla modeli 3B)
  • Co najmniej 16 GB (dla modeli 7B)
Miejsce do przechowywania
  • Co najmniej 20 GB dodatkowego wolnego miejsca do przechowywania ponad rozmiar pliku modelu.
  • Jeśli to możliwe, użyj woluminu SSD.
GPU (opcjonalnie)Kompatybilne karty NVIDIA GPU (patrz lista zgodności)
Karta GPU powinna być ustawiona w tryb Container Station Mode w Panelu sterowania.
OstrzeżenieRyzyko OOM (braku pamięci)
Ollama domyślnie będzie próbować załadować cały model do pamięci. Jeśli Twoje urządzenie NAS ma tylko 8–16 GB pamięci RAM, załadowanie modelu 14B lub większego może wyczerpać pamięć systemową, powodując brak odpowiedzi usług NAS lub ponowne uruchomienie systemu.

Ryzyko utraty danych
Jeśli nie montujesz trwałego woluminu dla /root/.ollama, wszystkie pobrane modele i konfiguracja zostaną utracone po usunięciu lub ponownym utworzeniu kontenera. Zawsze postępuj zgodnie z instrukcjami montowania woluminu zawartymi w tym samouczku.
najlepsze praktyki
  • Sprawdź rozmiar modelu w porównaniu z dostępną pamięcią RAM z wyprzedzeniem.
  • Ustaw limity pamięci, aby ograniczyć użycie pamięci przez kontener.
  • Zacznij od małych modeli (1B lub 3B) i oceń stabilność systemu przed przystąpieniem do większych modeli.




Procedura​


  1. Utwórz foldery do przechowywania danych.

    Otwórz File Station i utwórz następujący folder do przechowywania danych modelu Ollama:
    /share/Container/ollama

    f28dccdfe620346a94bb9ec303878c7b.png

    Zrzut ekranu: File Station — tworzenie folderu Ollama w lokalizacji /share/Container/

    najlepsze praktyki
    Jeśli Twoje urządzenie NAS ma pamięć podręczną NVMe SSD lub wolumin SSD, utwórz ten folder na dysku SSD. Szybkość ładowania modelu jest wówczas nawet 10 razy większa w porównaniu z dyskami HDD.
  2. Utwórz plik Docker Compose.

    W Container Station przejdź do Applications > Create. Nadaj aplikacji nazwę ollama i wklej następujący kod YAML:

    Kod:
    version: "3.8"
    
    services:
    ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
    - "11434:11434"
    volumes:
    - /share/Container/ollama:/root/.ollama
    environment:
    - OLLAMA_HOST=0.0.0.0
    - OLLAMA_KEEP_ALIVE=10m
    networks:
    - ai-network
    
    networks:
    ai-network:
    name: ai-network
    driver: bridge

    f690f48244455c122274af5d9ed42d3a.png

    Zrzut ekranu: Container Station — ekran tworzenia aplikacji z edytorem YAML

    1dbd248ce0402857d1e235a6f89df692.png

    Zrzut ekranu: Container Station — ustawianie limitu pamięci
  3. Wdróż kontener.

    Kliknij Create. Container Station pobierze obraz Ollama i uruchomi kontener. Poczekaj, aż status zmieni się na Running.

    1189370bdc9e81ec1c60aa6ef545ee44.png

    Zrzut ekranu: Container Station — kontener ollama ze statusem „Running"
  4. Pobierz swój pierwszy model.

    Otwórz Terminal kontenera (lub połącz się z urządzeniem NAS przez SSH i wykonaj polecenie exec w Dockerze) i uruchom:

    Kod:
    # Dla lekkiego modelu 3B (zalecany do pierwszego testu):
    ollama pull llama3.2:3b
    
    # Dla standardowego modelu 9B (wymaga co najmniej 16 GB RAM):
    ollama pull qwen3.5:9b

    Pobieranie może potrwać kilka minut w zależności od szybkości połączenia internetowego. Model 9B Q4_K_M waży około 4–7 GB.
    Uwaga
    • Przed pobraniem sprawdź, czy masz wystarczającą ilość miejsca na dysku. Użyj polecenia ollama list, aby sprawdzić istniejące modele i ich rozmiary.
    • W przypadku urządzeń NAS opartych na architekturze ARM zalecamy rozpoczęcie od modelu <1B w celu monitorowania zużycia pamięci.
  5. Przetestuj model.

    W terminalu kontenera uruchom:

    Kod:
    ollama run qwen3.5:9b

    Wpisz polecenie i sprawdź, czy otrzymujesz odpowiedź. Wpisz /bye, aby wyjść.

Uwaga
Dodatkowe wymagania wstępne dla trybu GPU:

  • Karta NVIDIA GPU zainstalowana i wykryta przez system QTS/QuTS hero
  • Karta GPU ustawiona w tryb Container Station Mode w Panelu sterowania
  • Sterownik NVIDIA GPU oraz NvKernelDriver zainstalowane z App Center

  1. Użyj konfiguracji Docker Compose z obsługą GPU.

    Zastąp kod YAML z metody 1 następującym:

    Kod:
    version: "3.8"
    
    services:
    ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
    - "11434:11434"
    volumes:
    - /share/Container/ollama:/root/.ollama
    environment:
    - OLLAMA_HOST=0.0.0.0
    - OLLAMA_KEEP_ALIVE=10m
    - NVIDIA_VISIBLE_DEVICES=all
    deploy:
    resources:
    reservations:
    devices:
    - driver: nvidia
    count: all
    capabilities: [gpu]
    networks:
    - ai-network
    
    networks:
    ai-network:
    name: ai-network
    driver: bridge

    056b36352389119a5169de2d6389d74b.png

    Zrzut ekranu: Container Station — kod YAML Docker Compose z obsługą GPU
    UwagaBundlowane sterowniki NVIDIA firmy QNAP mogą być starsze niż najnowsze wydanie. Jeśli uruchomienie kontenera z włączonym GPU zakończy się niepowodzeniem, sprawdź wersję sterownika za pomocą polecenia nvidia-smi na hoście i upewnij się, że jest ona zgodna z wersją obrazu Ollama.
  2. Wdróż kontener i zweryfikuj dostęp do GPU.

    Po uruchomieniu kontenera otwórz jego terminal i uruchom:

    Kod:
    nvidia-smi

    Powinny zostać wyświetlone informacje o modelu karty GPU, wersji sterownika i pamięci.

    41962a94461202962c2f054f2c7a0b4e.png
  3. Pobierz model i potwierdź akcelerację GPU.

    Kod:
    ollama pull qwen3.5:9b
    ollama run qwen3.5:9b

    Gdy model generuje odpowiedź, otwórz inny terminal i uruchom nvidia-smi. Powinieneś zaobserwować wzrost użycia pamięci GPU i wzrost obciążenia GPU.

Wynik​


Po ukończeniu tego samouczka będziesz mieć:

  • Ollama uruchomioną na urządzeniu QNAP NAS pod adresem http://<NAS-IP>:11434
  • Dane modelu zapisane trwale w /share/Container/ollama (zachowane po przebudowie kontenera)
  • Działający model LLM dostępny za pośrednictwem API Ollama

Możesz przetestować API z dowolnego urządzenia w sieci lokalnej:

Kod:
curl http://<NAS-IP>:11434/api/generate -d '{
"model": "qwen3.5:9b",
"prompt": "Hello, how are you?",
"stream": false
}'

cb18b8bea590ef5d4e1b55eea68e11df.png

WażneUstawienie OLLAMA_HOST=0.0.0.0 udostępnia API Ollama na wszystkich interfejsach sieciowych. Nie wystawiaj portu 11434 na dostęp z internetu. Użyj reguł zapory sieciowej lub ustawień sieciowych QNAP, aby ograniczyć dostęp wyłącznie do sieci lokalnej.


Rozwiązywanie problemów​


Może to być spowodowane niewystarczającą ilością pamięci RAM lub niezgodnością sterownika GPU. Sprawdź logi kontenera w Container Station. Zmniejsz limity pamięci lub wyłącz tryb GPU.

Może to być wynik niewystarczającej ilości miejsca na dysku lub przekroczenia limitu czasu sieci. Spróbuj zwolnić miejsce do przechowywania danych. Uruchom ponownie polecenie ollama pull; system wznowi pobieranie od miejsca, w którym zostało przerwane.

Model może być uruchomiony na CPU zamiast na GPU lub model jest zbyt duży dla dostępnej pamięci RAM. Sprawdź dostęp do GPU za pomocą polecenia nvidia-smi wewnątrz kontenera. Spróbuj użyć mniejszego modelu.

Może to być problem z brakiem pamięci: model zużywa całą pamięć systemową. Zalecamy ponowne uruchomienie urządzenia NAS. Ustaw limit użycia pamięci w aplikacji lub użyj mniejszego modelu.

Może to być spowodowane błędnym adresem URL API lub izolacją sieci Docker. Możesz użyć adresu http://ollama:11434, jeśli jesteś w tej samej sieci Docker.