Uruchom Ollama jedną komendą: docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama. Kontener wystawia API na porcie 11434, a nazwany wolumen ollama trzyma modele, więc przetrwają restart i usunięcie kontenera. Dla karty NVIDIA dorzuć --gpus=all. Po starcie pobierasz model i działasz.
Poniżej rozkładam to na czynniki pierwsze: kiedy kontener ma sens, jak go odpalić krok po kroku, jak podpiąć GPU, jak złożyć Ollama z Open WebUI w jednym docker-compose.yml, co zmienia się na serwerze i które błędy wracają najczęściej. Każda komenda jest gotowa do skopiowania - bez ściany teorii przed pierwszym poleceniem.
Dlaczego Ollama w Dockerze (kiedy kontener ma sens)
W skrócie: Docker daje izolację, powtarzalność i czyste usuwanie. Ollama to runtime do uruchamiania lokalnych dużych modeli językowych (LLM) - udostępnia prosty CLI i REST API. Jest dostępna jako oficjalny, sponsorowany obraz open-source ollama/ollama na Docker Hub, więc nie musisz nic kompilować - pobierasz gotowy obraz i startujesz. Cały ekosystem opisuję w pełnym przewodniku po Ollama. Jeśli to Twój przypadek, zobacz natywną instalację Ollama, środowisko jest gotowe.
-
Pobierz obraz i uruchom kontener (CPU). To jest komenda, od której wszystko się zaczyna:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollamaRozbijmy flagi:
-duruchamia kontener w tle (detached),-v ollama:/root/.ollamamontuje nazwany wolumenollamaw katalogu, gdzie Ollama trzyma modele,-p 11434:11434mapuje port API na hosta, a--name ollamanadaje kontenerowi czytelną nazwę, żebyś nie operował na hashu ID. -
Pobierz model do kontenera. Modeli nie ściągasz na hoście - robisz to wewnątrz działającego kontenera:
docker exec -it ollama ollama pull llama3.2To, jaki model wybrać pod swój RAM, rozpisuję w doborze modelu do zasobów nie kasuje modeli - one siedzą w wolumenie
ollama, nie w kontenerze. Dopierodocker volume rm ollamausuwa pobrane modele na stałe. Higiena: trzymaj tę różnicę z tyłu głowy, zanim zaczniesz sprzątać.
Ollama z GPU NVIDIA w Dockerze
W skrócie: dorzuć --gpus=all i zainstaluj na hoście NVIDIA Container Toolkit - bez tego toolkitu kontener mimo flagi policzy na CPU. Komenda z akceleracją wygląda tak:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Toolkit to warstwa, która udostępnia kontenerowi sterowniki i CUDA hosta. Jego instalacja zależy od dystrybucji - konkretne polecenia znajdziesz w aktualnej dokumentacji NVIDIA Container Toolkit. Po starcie zweryfikuj, czy kontener faktycznie widzi kartę:
docker exec -it ollama nvidia-smi
Jeśli nvidia-smi pokazuje Twoją kartę, akceleracja jest podpięta. Sprawdź też logi startu kontenera (docker logs ollama) - Ollama zwykle wypisuje przy starcie, czy wykryła GPU, czy spadła na tryb CPU. Gdy nie działa: najczęstsza przyczyna to brak toolkitu lub niezgodne sterowniki na hoście - rozpisuję to w troubleshootingu GPU w Ollama, który korzysta z ROCm zamiast CUDA; reszta flag (-v, -p, --name) zostaje bez zmian, podmieniasz wyłącznie tag obrazu.
Ollama + Open WebUI przez docker-compose
W skrócie: jeden plik docker-compose.yml stawia dwa serwisy - ollama (silnik) i open-webui (interfejs w przeglądarce). Po starcie wchodzisz na http://localhost:3000, zakładasz konto i rozmawiasz z modelem przez GUI. Same podstawy docker-compose. Konfigurację samego interfejsu rozwijam w Open WebUI - instalacja i konfiguracja, tak żeby z zewnątrz dostępny był wyłącznie reverse proxy. Ustaw restart: unless-stopped na obu serwisach, żeby po restarcie hosta kontenery wstały same. Pilnuj też wolnego miejsca - kilka pobranych modeli potrafi zapełnić mniejszy dysk VPS szybciej, niż się spodziewasz, a brak miejsca to klasyczna przyczyna nieudanego pull.
Częste błędy i pułapki
Gdy nie działa, w większości przypadków to jedna z poniższych rzeczy - objaw, przyczyna, rozwiązanie. Zanim zaczniesz grzebać głębiej, sprawdź dwie podstawy: czy kontener w ogóle stoi (docker ps) i co mówią jego logi (docker logs ollama). To zwykle od razu zawęża pole poszukiwań.
- Modele znikają po
docker rm. Przyczyna: uruchomiłeś kontener bez wolumenu, więc dane siedziały w warstwie kontenera. Rozwiązanie: zawsze dodawaj-v ollama:/root/.ollama. Wtedydocker rmnie rusza modeli. - Port 11434 zajęty. Objaw: błąd przy starcie, że port jest w użyciu (np. działa już natywna Ollama). Rozwiązanie: zmień mapowanie hosta, np.
-p 11435:11434, i odpytuj API na nowym porcie. - Liczy na CPU mimo
--gpus=all. Przyczyna: brak NVIDIA Container Toolkit albo niezgodne sterowniki na hoście. Sprawdźdocker exec -it ollama nvidia-smi; szczegóły w troubleshootingu GPU w Ollama. - Mylenie
docker runzdocker compose. To dwie ścieżki, nie łącz ich dla tego samego kontenera. Albo pojedynczydocker run, albo serwis wdocker-compose.yml. ollama pullna hoście zamiast w kontenerze. Polecenia modelu wykonujesz wewnątrz:docker exec -it ollama ollama pull .... Na hoście (bez natywnej instalacji) komendaollamapo prostu nie istnieje.
FAQ
Jak uruchomić Ollama w Dockerze?
Wystarczy jedna komenda: docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama. Kontener wystawia API na porcie 11434, a nazwany wolumen ollama trzyma modele. Następnie pobierasz model poleceniem docker exec -it ollama ollama pull llama3.2 i możesz go testować przez CLI lub REST API.
Gdzie Ollama w Dockerze trzyma modele?
Modele lądują w katalogu /root/.ollama wewnątrz kontenera. Jeśli zamontujesz tam nazwany wolumen flagą -v ollama:/root/.ollama, przetrwają one restart, a nawet usunięcie kontenera poleceniem docker rm. Bez wolumenu po skasowaniu kontenera musisz pobierać wszystkie modele od nowa, co przy większych plikach oznacza spore, niepotrzebne pobranie z sieci.
Jak uruchomić Ollama w Dockerze z GPU NVIDIA?
Dodaj flagę --gpus=all do komendy docker run i zainstaluj na hoście NVIDIA Container Toolkit. Bez toolkitu kontener mimo flagi policzy na CPU. Czy karta jest widoczna, sprawdzisz komendą docker exec -it ollama nvidia-smi. Dla kart AMD użyj obrazu z tagiem ollama/ollama:rocm, który korzysta z ROCm.
Jak połączyć Ollama z Open WebUI w Dockerze?
Użyj jednego pliku docker-compose.yml z dwoma serwisami: ollama i open-webui. W serwisie WebUI ustaw zmienną OLLAMA_BASE_URL na adres serwisu ollama, zmapuj port hosta 3000 na wewnętrzny port 8080 i odpal docker compose up -d. Interfejs otworzysz pod adresem http://localhost:3000, gdzie założysz konto i wybierzesz model.
Czy Ollama w Dockerze działa na Windows?
Tak, przez Docker Desktop z backendem WSL2. Komendy docker run i docker compose są identyczne jak na Linuksie, więc cały przepływ przenosi się bez zmian. Akceleracja GPU na Windowsie wymaga dodatkowej konfiguracji sterowników w WSL2 - na CPU kontener wystartuje od razu, bez tego kroku.
Jak postawić Ollama w Dockerze na serwerze?
Użyj tego samego pliku docker-compose.yml na VPS, dobierz RAM pod rozmiar modelu i dysk pod wolumen z modelami. Krytyczne: nie wystawiaj portu 11434 publicznie do internetu, bo API domyślnie nie ma autoryzacji. Postaw reverse proxy z logowaniem i ogranicz dostęp firewallem.
Co dalej
Masz działający kontener: jedna komenda na CPU, --gpus=all na GPU i gotowy docker-compose.yml z Open WebUI do skopiowania. Konkret: jeśli dopiero zaczynasz, przejdź pełny przewodnik po Ollama dla wygodnego interfejsu oraz dobór modelu do zasobów, żeby nie trafić na OOM przy pierwszym uruchomieniu.