Bỏ qua đến nội dung chính
AI Local
Icon con llama của Ollama phía trên cửa sổ terminal chạy Ollama trong Docker với GPU, ollama ps báo 100% GPU

Cài Ollama trên Windows, macOS, Linux, Docker

Nguyễn Việt Chung

Đăng 10 phút đọc

1 lượt xem
Mục lục · 20

Cài Ollama trên Linux, Windows và Docker, làm thật trên hai máy thuê ngày 10/10/2026: lệnh nào, mất bao lâu, chạy nhanh đến đâu, vì sao container mới nạp model mất gần một phút và cách sửa, cổng 11434 mở ra ngoài khi nào. macOS ghi theo tài liệu chính thức.

Cài Ollama trên Linux chỉ cần một lệnh curl -fsSL https://ollama.com/install.sh | sh. Trên Windows và macOS bạn tải bộ cài từ ollama.com. Với Docker thì chạy image ollama/ollama, và phải nhớ thêm --gpus=all nếu muốn dùng card NVIDIA. Cài xong, Ollama chạy nền ở cổng 11434.

Mình cài thử trên ba môi trường ngày 10/10/2026: Ubuntu 24.04 với RTX 3090, Docker trên chính máy đó, và Windows 10 với Tesla P40. Cả hai máy đều thuê theo giờ. Bản Ollama là 0.40.2, model thử là qwen3.5:9b. Vài kết quả đáng chú ý:

  • Trên Linux, script cài xong trong 26 giây. Bản Docker phải tải image 9,36GB, còn bộ cài Windows nặng 1,5GB.

  • Chạy Docker mà quên --gpus=all, Ollama không báo lỗi gì, cứ thế chạy bằng CPU với 4,9 token/giây, chậm hơn khoảng 16 lần so với khi dùng GPU.

  • Lần đầu chạy model sau khi cài mất 57 giây chỉ để nạp. Với Docker, mỗi lần tạo container mới là lại mất 57 giây, trừ khi bạn giữ lại thư mục cache CUDA.

  • Cài bằng Docker thì cổng 11434 mở cho mọi địa chỉ. Cài bằng script thì Ollama chỉ nhận kết nối từ chính máy đó.

Chưa rõ Ollama là gì thì đọc bài Ollama là gì trước. Bài này chỉ bàn chuyện cài và chạy cho đúng.

Chọn cách nào: script, bộ cài hay Docker?

Cách cài

Hợp với

Mình đã thử

Script trên Linux

Máy chủ, máy thuê GPU

Có, Ubuntu 24.04 + RTX 3090

Bộ cài Windows

Máy Windows có card NVIDIA hoặc AMD

Có, Windows 10 + Tesla P40

Ứng dụng macOS

MacBook, Mac mini chip M

Chưa, ghi theo tài liệu

Docker

Máy đã chạy nhiều dịch vụ bằng Docker, cần tách biệt

Có, cùng máy RTX 3090

Mình chọn theo một nguyên tắc: máy chỉ để chạy model thì cài thẳng bằng script hoặc bộ cài. Docker chỉ đáng dùng khi máy đã chạy sẵn các dịch vụ khác bằng Docker, ví dụ n8n hay Open WebUI, và bạn muốn mọi thứ nằm chung một file compose.

Biểu đồ tốc độ qwen3.5:9b theo cách cài Ollama: Linux script RTX 3090 78,6 token/giây, Docker có GPU 76,9, Windows 10 Tesla P40 37,4, Docker thiếu --gpus=all 4,9

Docker có GPU chỉ chậm hơn cài thẳng khoảng 2%, chênh lệch không đáng kể. Con số trên Windows thấp hơn vì máy đó dùng Tesla P40, card đời cũ hơn RTX 3090 hai thế hệ, chứ không phải tại Windows.

Cài Ollama trên Linux bằng script

Trên Ubuntu, Debian, Fedora, chạy một lệnh duy nhất (cần quyền sudo):

bash
curl -fsSL https://ollama.com/install.sh | sh

Script tạo user ollama, thêm user đó vào nhóm render và video, tạo service systemd rồi khởi động luôn. Nó cũng tự nhận ra card NVIDIA. Trên máy mình, toàn bộ việc này mất 26,1 giây, thư viện chiếm 2,1GB ở /usr/local/lib/ollama.

Terminal cài Ollama 0.40.2 trên Ubuntu 24.04: các bước tạo user, service systemd, NVIDIA GPU installed, mất 26,1 giây, Ollama nghe ở 127.0.0.1:11434

Kiểm tra lại bằng ba lệnh:

bash
ollama -v
systemctl status ollama
ollama run qwen3.5:9b --verbose "Giải thích ngắn gọn Docker là gì?"

Muốn nâng cấp thì chạy lại đúng lệnh cài. Trên Windows mà thích môi trường Linux thì WSL2 cũng dùng lệnh này, phần đó mình chưa thử.

Lần chạy đầu tiên sau khi cài sao chậm thế?

Lần đầu mình chạy model, ollama run mất 1 phút 40 giây, trong đó 58 giây chỉ để nạp model. Lần thứ hai thì chưa tới 2 giây.

Terminal ollama run lần đầu sau khi cài: total duration 1m40s, load duration 58,3 giây; lần thứ hai total 1,85 giây, eval rate 78 token/giây

Lúc đầu mình nghĩ do đĩa chậm. Đo lại thì đĩa đọc được 2,3GB/s. Xóa cache đĩa rồi nạp lại cũng chỉ mất 8,8 giây, còn khi cache đĩa vẫn còn thì 4,4 giây. Thủ phạm thật là thư mục ~/.nv/ComputeCache: lần đầu chạy trên một máy, driver NVIDIA biên dịch kernel CUDA rồi lưu vào đây (khoảng 64MB). Từ lần sau nó dùng lại bản đã biên dịch.

Cài thẳng trên máy thì bạn chỉ chịu 57 giây này một lần. Với Docker thì khác, xem mục dưới.

Cài Ollama bằng Docker có GPU NVIDIA

Máy cần có NVIDIA Container Toolkit trước. Image "Ubuntu 24.04 AI" của AIDev Cloud có sẵn và đã cấu hình cho Docker. Máy khác thì cài theo hướng dẫn Docker của Ollama. Lệnh chạy:

bash
docker run -d --gpus=all -v ollama:/root/.ollama -v ollama-nv:/root/.nv \
  -p 127.0.0.1:11434:11434 --name ollama ollama/ollama
docker exec -it ollama ollama run qwen3.5:9b

So với lệnh trong tài liệu chính thức, mình thêm hai thứ, cả hai đều rút ra từ chuyện gặp khi thử:

  • -v ollama-nv:/root/.nv để giữ cache CUDA giữa các container (đã đo, xem bên dưới).

  • 127.0.0.1: trước cổng để Ollama không mở ra ngoài. Đây là cách gắn cổng chuẩn của Docker, mình dùng y như vậy cho n8n trong bài tự host n8n. Riêng với container Ollama, mình đo cổng ở dạng mặc định -p 11434:11434.

Quên --gpus=all thì sao?

Ollama vẫn chạy bình thường, không báo lỗi. ollama ps ghi 100% CPU, context chỉ còn 4096 thay vì 32768, tốc độ 4,92 token/giây. Thêm --gpus=all thì lên 76,9 token/giây và ollama ps ghi 100% GPU.

Terminal Ollama trong Docker: không có --gpus=all thì eval rate 4,92 token/giây và ollama ps báo 100% CPU, context 4096; có --gpus=all thì 76,87 token/giây, 100% GPU, context 32768

Nếu thấy Ollama trong Docker chậm bất thường, việc đầu tiên là gõ docker exec ollama ollama ps và xem cột PROCESSOR.

Container mới lại nạp model mất 57 giây

Mình chạy docker restart ollama thì model nạp lại trong 4,5 giây. Nhưng xóa container rồi tạo container mới, vẫn dùng volume ollama, thì lại mất 57,6 giây. Lý do: /root/.nv/ComputeCache nằm trong container, không nằm trong volume, nên bị xóa theo container.

Gắn thêm volume cho thư mục đó là hết: lần đầu vẫn 57,7 giây, nhưng tạo lại container lần hai, lần ba chỉ còn 4,4 giây. Ai cập nhật image Ollama thường xuyên sẽ thấy khác biệt ngay, vì mỗi lần docker pull rồi tạo lại container là một lần mất gần một phút.

Terminal: container mới chỉ có volume ollama nạp model mất 57,6 giây, ComputeCache 64MB; thêm volume ollama-nv:/root/.nv thì tạo lại container chỉ còn 4,4 giây

Cổng 11434 có bị lộ ra Internet không?

Có, nếu bạn chạy Docker với -p 11434:11434 như trong tài liệu. Docker mở cổng cho mọi địa chỉ (0.0.0.0), và Ollama không có mật khẩu. Ai gọi tới được IP máy là liệt kê và dùng được model của bạn.

Terminal so sánh: Docker -p 11434:11434 nghe 0.0.0.0, gọi qua IP máy trả danh sách model không cần khóa; Ollama cài bằng script nghe 127.0.0.1, gọi qua IP máy báo curl (7) Failed to connect

Cài bằng script thì ngược lại: Ollama chỉ nghe ở 127.0.0.1, máy khác không gọi vào được. Muốn mở cho máy khác trong mạng nội bộ, chạy sudo systemctl edit ollama, thêm hai dòng sau rồi sudo systemctl restart ollama:

ini
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"

Mình thử bằng cách tạo file /etc/systemd/system/ollama.service.d/override.conf có đúng hai dòng trên (lệnh systemctl edit cũng tạo ra chính file này). Khởi động lại xong, Ollama nghe ở mọi địa chỉ và gọi qua IP máy trả 200. Chỉ nên làm vậy khi máy nằm sau firewall hoặc reverse proxy có xác thực. Dùng máy thuê có IP công khai thì cách an toàn hơn là SSH tunnel, hướng dẫn trong bài Ollama là gì, mục lỗi số 3.

Ollama trên Windows: cài thế nào?

Theo tài liệu Ollama, Windows cần bản 10 22H2 trở lên, driver NVIDIA từ 551.61. Bộ cài không cần quyền Administrator, cài vào thư mục người dùng. Có hai cách: tải OllamaSetup.exe từ ollama.com rồi bấm đúp, hoặc chạy lệnh sau trong PowerShell:

powershell
irm https://ollama.com/install.ps1 | iex

Mình dùng cách 1 trên máy Windows 10 IoT Enterprise LTSC 21H2, tức là bản cũ hơn mức tài liệu yêu cầu, nhưng vẫn cài được:

  • Bộ cài nặng 1.505MB, tải hết 17,8 giây.

  • Cài chế độ im lặng (/VERYSILENT) hết 98 giây.

  • Model nằm trong %HOMEPATH%\.ollama, log nằm trong %LOCALAPPDATA%\Ollama.

Terminal PowerShell cài Ollama trên Windows: tải OllamaSetup.exe 1.505MB, cài 98,3 giây, ollama -v báo could not connect khi app chưa chạy, sau đó đo 37,4 token/giây

Vì mình điều khiển máy qua SSH, không có màn hình desktop, nên ứng dụng ở khay hệ thống không tự mở, và ollama -v báo could not connect to a running Ollama instance. Trên máy có màn hình thì ứng dụng tự chạy sau khi cài. Mình phải chạy ollama serve bằng tay. Sau đó qwen3.5:9b chạy hoàn toàn trên GPU (33/33 layer) với 37,4 token/giây. Lần nạp đầu mất 40,7 giây, các lần sau 6,1 giây.

Ollama trên macOS

Phần này mình chưa thử. Theo tài liệu macOS của Ollama:

  • Cần macOS 14 Sonoma trở lên.

  • Máy chip M dùng được cả GPU, máy Intel chỉ chạy CPU.

  • Cài bằng cách mở file ollama.dmg và kéo ứng dụng vào thư mục Applications.

  • Model nằm ở ~/.ollama.

Mac chip M dùng chung RAM cho CPU và GPU, nên dung lượng RAM của máy quyết định chạy được model cỡ nào. Tốc độ trên Mac mình chưa đo nên không đưa số.

Gỡ Ollama trên Linux

Mình gỡ theo đúng các lệnh trong tài liệu, máy trống thêm 9GB (model 6,2GB, thư viện 2,1GB):

bash
sudo systemctl stop ollama && sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service
sudo rm -r $(which ollama | tr 'bin' 'lib')
sudo rm $(which ollama)
sudo userdel ollama && sudo groupdel ollama
sudo rm -r /usr/share/ollama

Lệnh userdel in ra userdel: group ollama not removed because it has other members. vì script cài đã thêm user của bạn vào nhóm ollama. Không sao, lệnh groupdel ngay sau đó vẫn xóa được nhóm. Bản Docker thì nhớ xóa thêm volume: docker volume rm ollama ollama-nv.

Những lỗi mình gặp khi cài đặt

Lỗi

Nguyên nhân

Cách sửa

Lần nạp đầu mất 57 giây

Driver biên dịch kernel CUDA lần đầu

Chờ một lần; Docker thì gắn volume /root/.nv

Docker chậm, ollama ps ghi 100% CPU

Quên --gpus=all

Tạo lại container với --gpus=all

Gọi IP:11434 báo Failed to connect

Bản cài script chỉ nghe 127.0.0.1

Đặt OLLAMA_HOST=0.0.0.0:11434

Windows: could not connect to a running Ollama instance

Ứng dụng khay chưa chạy

Mở Ollama từ Start menu hoặc ollama serve

userdel: group ollama not removed…

User của bạn còn trong nhóm ollama

Chạy tiếp groupdel ollama

Nguyên văn lỗi khi gọi Ollama từ máy khác mà nó chỉ nghe localhost:

text
curl: (7) Failed to connect to 10.11.30.14 port 11434 after 0 ms: Couldn't connect to server

Và trên Windows khi ứng dụng chưa chạy:

text
Warning: could not connect to a running Ollama instance
Warning: client version is 0.40.2

Khi nào không nên chạy Ollama bằng Docker?

  • Máy chỉ dùng để chạy model. Cài thẳng nhanh hơn một chút, không phải tải image 9,36GB, không lo quên --gpus=all.

  • Bạn không quen đọc docker ps, docker logs. Khi Ollama chạy bằng CPU, chỉ có ollama ps cho bạn biết, ngoài ra không có dấu hiệu gì.

  • Máy đã cài Ollama thẳng rồi. Volume của Docker lưu model riêng, mình phải tải lại qwen3.5:9b (6,55GB) dù máy đã có sẵn bản cài thẳng.

Câu hỏi thường gặp

Cài Ollama có miễn phí không?

Có. Ollama là phần mềm mã nguồn mở giấy phép MIT, không cần tài khoản. Model tải về miễn phí, mỗi model có giấy phép riêng, nên đọc trước khi dùng cho việc thương mại.

Máy không có card rời thì cài Ollama được không?

Được, Ollama tự chạy bằng CPU. Trong bài, CPU 25 nhân chỉ được 4,9 token/giây với model 9B. Máy văn phòng nên chọn model nhỏ cỡ 1 đến 4B, hoặc thuê GPU theo giờ khi cần.

Cài Ollama trên Windows có cần quyền Administrator không?

Không. Bộ cài đặt vào %LOCALAPPDATA%\Programs\Ollama của tài khoản đang dùng và tự thêm vào PATH. Muốn cài chỗ khác thì chạy OllamaSetup.exe /DIR="D:\Ollama".

Cập nhật Ollama thế nào?

Linux chạy lại lệnh cài. Windows và macOS tự tải bản mới, bạn bấm "Restart to update" ở biểu tượng khay. Docker thì docker pull ollama/ollama rồi tạo lại container, nhớ có volume /root/.nv để khỏi chờ 57 giây.

Đọc tiếp

Máy chưa có card NVIDIA thì AIDev Cloud cho thuê theo giờ. Ngày 10/10/2026, máy RTX 3090 dùng trong bài giá 15.000 đồng/giờ, máy Tesla P40 chạy Windows giá 7.000 đồng/giờ.

Thử ngày 10/10/2026 trên máy RTX 3090 (Ubuntu 24.04.4, driver 610.43, Docker 29.6.1) và máy Tesla P40 (Windows 10 IoT Enterprise LTSC 21H2, driver 576.57) của AIDev Cloud, Ollama 0.40.2, model qwen3.5:9b, think=false.

Chuyên mục

AI Local

Về tác giả

Nguyễn Việt Chung

Founder AIDev

Thạc sĩ AI MSE, tốt nghiệp thủ khoa với điểm 9,4/10. Đồng sáng lập, CTO E-University, SVOnline: số hóa 10+ đại học, 40.000+ sinh viên. Sáng lập AIDev và VietPlatform, xây hệ thống AI cho doanh nghiệp. Anh trực tiếp biên soạn và giảng dạy toàn bộ lộ trình AI Engineer.