Cài AI Local trên Linux và máy chủ GPU: systemd, Docker có GPU
Bài thực hành cho người dựng một máy chủ Linux có card NVIDIA để cả nhóm dùng chung AI Local. Hai cách đi từng bước: cài Ollama thẳng vào máy và chạy bằng systemd, hoặc chạy Ollama trong Docker có GPU. Kèm mục kiểm tra, lỗi thường gặp, cập nhật, gỡ cài đặt và an toàn. Dữ kiện đối chiếu tài liệu chính thức của Ollama, NVIDIA và Docker ngày 20–21/10/2026.
Máy chủ có card đồ hoạ nằm trong phòng, nhưng chưa ai dựng được
Công ty vừa có một máy chủ cài Linux, gắn card NVIDIA, định dùng chung cho cả nhóm: tóm tắt hợp đồng, viết nháp nội dung, làm bộ não cho chatbot nội bộ. Người phụ trách cài thử Ollama, model chạy được, nhưng chậm. Hoá ra máy đang dùng CPU vì driver card chưa đúng. Khởi động lại thì dịch vụ không tự lên. Có người đề nghị mở cổng cho cả công ty gọi vào cho nhanh. (Tình huống minh hoạ.)
Bài này đi theo thứ tự cần làm trên một máy chủ Linux: driver NVIDIA, cài Ollama chạy nền bằng systemd (hoặc trong Docker có GPU), cấu hình, kiểm tra đúng GPU, xử lý lỗi, cập nhật và an toàn. Phần cài cơ bản trên máy cá nhân đã có ở Cài AI Local trong 30 phút; chưa rõ nên mua máy cỡ nào, xem Cấu hình máy tính chạy AI Local.
Cài AI Local trên Linux và máy chủ GPU là làm gì?
Cài AI Local trên Linux và máy chủ GPU là cài driver NVIDIA, cài phần mềm chạy model (ở đây là Ollama) thành một dịch vụ tự khởi động cùng máy, để model mở chạy trên card đồ hoạ và phục vụ cả nhóm qua API nội bộ.
- Driver NVIDIACài theo hướng dẫn của NVIDIA, kiểm tra bằng nvidia-smi
- OllamaCài thẳng và chạy bằng systemd, hoặc chạy trong Docker có GPU
- Cấu hìnhNơi lưu model, độ dài context, bộ nhớ đệm, tắt tính năng đám mây
- Kiểm traollama ps phải báo chạy trên GPU
- Mở cho nhómQua giao diện có tài khoản và VPN, không mở thẳng cổng 11434
Chọn cách chạy: systemd, Docker hay vLLM
| Cách | Phù hợp với | Lưu ý |
|---|---|---|
| Cài thẳng + systemd | Máy chủ chủ yếu để chạy AI Local; người mới làm quản trị Linux | Ít lớp, log xem bằng journalctl, mặc định chỉ nghe 127.0.0.1:11434 |
| Docker có GPU | Máy chủ đã chạy nhiều dịch vụ bằng container | Cần NVIDIA Container Toolkit; GPU trong Docker chỉ có trên Linux hoặc Windows qua WSL2 |
| vLLM | Nhiều người hoặc nhiều AI Agent gọi cùng lúc, có người vận hành | Chạy trên Linux, cổng mặc định 8000, giấy phép Apache-2.0; --api-key không bảo vệ mọi endpoint |
Bài này đi chi tiết hai cách đầu với Ollama (giấy phép MIT, miễn phí). Mặc định Ollama xử lý một yêu cầu mỗi lúc cho mỗi model (OLLAMA_NUM_PARALLEL bằng 1), đủ cho nhóm nhỏ dùng xen kẽ.
Nguồn: Ollama – Linux · Ollama FAQ · vLLM – cài đặt GPU · vLLM – bảo mật
Chuẩn bị trước khi cài
- Card NVIDIA được hỗ trợ: Ollama cần compute capability từ 5.0 và driver từ 550; card đời cũ (compute capability 5.0–6.2, ví dụ GTX 10xx) cần driver từ 570. Tra card ở trang CUDA GPUs của NVIDIA.
- Bản Linux: hướng dẫn driver của NVIDIA trong bài áp dụng cho Ubuntu 22.04, 24.04, 26.04. Bản Linux khác làm theo trang tương ứng của NVIDIA.
- Quyền quản trị: tài khoản có
sudo, đăng nhập qua SSH an toàn. - Ổ cứng: mỗi model nặng từ vài GB tới hàng trăm GB; nên có một ổ riêng cho model.
- Kế hoạch dừng máy: cài driver cần khởi động lại; báo trước cho người đang dùng.
Nguồn: Ollama – GPU · NVIDIA – driver Ubuntu
Bước 1. Cài driver NVIDIA
Nếu nvidia-smi đã in ra tên card và phiên bản driver đạt yêu cầu ở trên, bỏ qua bước này. Nếu chưa, làm theo hướng dẫn chính thức của NVIDIA cho Ubuntu (dùng kho mạng của NVIDIA, bản driver open kernel modules):
sudo apt install linux-headers-$(uname -r)
wget https://developer.download.nvidia.com/compute/cuda/repos/<distribution>/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install nvidia-open # bản đầy đủ (màn hình và tính toán)
# hoặc, máy chủ chỉ tính toán, không màn hình:
# sudo apt -V install libnvidia-compute nvidia-dkms-open
sudo rebootTrang NVIDIA ghi các lệnh này với quyền root; ở đây thêm sudo phía trước. Máy ARM64 thay x86_64 bằng sbsa trong đường dẫn. Sau khi máy khởi động lại, chạy nvidia-smi: phải in ra thông tin card. Nâng cấp driver về sau dùng sudo apt dist-upgrade.
Nguồn: NVIDIA – driver Ubuntu · Ollama – Linux (nvidia-smi)
Bước 2. Cài Ollama và chạy bằng systemd
Cách nhanh: script cài chính thức
Script curl -fsSL https://ollama.com/install.sh | sh cài Ollama và dịch vụ chạy nền, như ở bài cài đặt. Bật dịch vụ bằng sudo systemctl enable ollama và sudo systemctl start ollama. Chỉ chạy script từ đúng địa chỉ ollama.com.
Cách cài tay, tự tạo dịch vụ
Hợp với máy chủ cần biết rõ từng tệp được đặt ở đâu. Tải bản amd64, tạo tài khoản hệ thống ollama riêng (không đăng nhập được) để dịch vụ không chạy bằng tài khoản của bạn:
curl -fsSL https://ollama.com/download/ollama-linux-amd64.tar.zst \
| sudo tar x -C /usr
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)Tạo tệp /etc/systemd/system/ollama.service với nội dung theo tài liệu Ollama:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable ollama # tự chạy khi máy khởi động
sudo systemctl start ollama
sudo systemctl status ollama # phải thấy active (running)Nguồn: Ollama – Linux: cài tay, systemd
Bước 3. Cấu hình bằng tệp override, không sửa tệp gốc
Đặt biến môi trường cho dịch vụ bằng sudo systemctl edit ollama (tạo tệp /etc/systemd/system/ollama.service.d/override.conf). Cách này giữ nguyên tệp dịch vụ gốc khi cập nhật. Ví dụ cho máy chủ dùng chung:
[Service]
Environment="OLLAMA_MODELS=/data/ollama-models"
Environment="OLLAMA_CONTEXT_LENGTH=32768"
Environment="OLLAMA_KV_CACHE_TYPE=q8_0"
Environment="OLLAMA_NO_CLOUD=1"| Biến | Ý nghĩa theo tài liệu Ollama |
|---|---|
OLLAMA_MODELS | Đổi nơi lưu model (mặc định /usr/share/ollama/.ollama/models). Tài khoản ollama phải có quyền: sudo chown -R ollama:ollama /data/ollama-models |
OLLAMA_CONTEXT_LENGTH | Độ dài context mặc định; context lớn tốn thêm VRAM. Việc AI Agent nên từ 64000 |
OLLAMA_KV_CACHE_TYPE | f16 mặc định; q8_0 dùng khoảng một nửa bộ nhớ, giảm chính xác rất ít; q4_0 khoảng một phần tư. Áp cho mọi model |
OLLAMA_FLASH_ATTENTION | Tự bật khi phần cứng hỗ trợ; đặt 1 để ép bật |
OLLAMA_NO_CLOUD | Đặt 1 để tắt hẳn model đám mây và tìm web của Ollama |
CUDA_VISIBLE_DEVICES | Máy nhiều card: chỉ định card, nên dùng UUID xem bằng nvidia-smi -L |
Lưu xong chạy sudo systemctl daemon-reload rồi sudo systemctl restart ollama. Không thêm OLLAMA_HOST ở đây nếu chưa đọc mục An toàn bên dưới.
Nguồn: Ollama – Linux: override · Ollama FAQ – biến môi trường, bộ nhớ · Ollama – Context length · Ollama – nhiều GPU
Cách khác: chạy Ollama trong Docker có GPU
Máy đã cài Docker và driver NVIDIA. Cài NVIDIA Container Toolkit để container dùng được card (lệnh theo tài liệu Ollama, bản apt):
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -fsSL 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
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerThử container có thấy card không bằng lệnh mẫu của NVIDIA: sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi. Sau đó chạy Ollama:
docker run -d --gpus=all -v ollama:/root/.ollama -p 127.0.0.1:11434:11434 --name ollama ollama/ollama
docker exec -it ollama ollama run qwen3.5:4b # tải và chat thử một model nhỏ-p 11434:11434. Theo tài liệu Docker, cổng mở kiểu này nghe trên mọi địa chỉ của máy, và với ufw thì gói tin đi vòng qua luật tường lửa. Vì vậy lệnh trên ghép thêm 127.0.0.1: (cú pháp chính thức của Docker) để chỉ chính máy gọi được. Model qwen3.5:4b giấy phép Apache-2.0; đọc điều khoản trên trang model trước khi dùng cho kinh doanh.Volume ollama giữ model qua các lần tạo lại container. Xem log bằng docker logs ollama.
Nguồn: Ollama – Docker · NVIDIA Container Toolkit · NVIDIA – lệnh kiểm tra mẫu · Docker – mở cổng · Docker – Docker và ufw · Ollama – qwen3.5
Kiểm tra đã chạy đúng
-
nvidia-smiin ra tên card, phiên bản driver. -
sudo systemctl status ollamabáo active (running); khởi động lại máy, dịch vụ tự lên. -
ollama -vin phiên bản; bản mới nhất khi kiểm tra là v0.40.6 (16/10/2026). - Chạy
ollama run qwen3.5:4b, hỏi một câu, rồi gõollama ps: cột PROCESSOR ghi100% GPU. Nếu ghi100% CPUlà chưa dùng card; tỷ lệ chia kiểu48%/52% CPU/GPUlà model tràn bộ nhớ card. - Gọi thử API trên chính máy:
curl http://localhost:11434/v1/modelstrả về danh sách model (ghép từ cú pháp chính thức, hãy thử trên máy thử trước). - Theo dõi log trực tiếp:
journalctl -u ollama --no-pager --follow --pager-end.
Nguồn: Ollama FAQ – ollama ps · Ollama – log · Ollama – API tương thích OpenAI · Ollama releases
Lỗi thường gặp và cách xử lý
| Hiện tượng | Cách xử lý theo tài liệu |
|---|---|
| Sau khi máy ngủ rồi thức dậy, Ollama mất GPU, chạy bằng CPU | Nạp lại module: sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm |
| Không khởi tạo được GPU (mã lỗi 3, 46, 100, 999…) | Thử sudo nvidia-modprobe -u, nạp lại nvidia_uvm, khởi động lại máy, cập nhật driver. Xem thêm: sudo dmesg | grep -i nvrm |
| Container lúc đầu dùng GPU rồi tụt về CPU | Thêm "exec-opts": ["native.cgroupdriver=cgroupfs"] vào /etc/docker/daemon.json. NVIDIA cũng ghi lỗi đã biết khi chạy systemctl daemon-reload trên hệ dùng systemd cgroup |
Lỗi do /tmp gắn chế độ noexec | Đặt OLLAMA_TMPDIR, ví dụ /usr/share/ollama/ |
| Đổi thư mục model rồi Ollama không chạy | Thiếu quyền: sudo chown -R ollama:ollama thư mục mới |
| Cần log chi tiết | Thêm Environment="OLLAMA_DEBUG=1" trong override.conf, khởi động lại dịch vụ |
Nguồn: Ollama – GPU · Ollama – Troubleshooting · Ollama FAQ · NVIDIA – lỗi đã biết
Cập nhật và gỡ cài đặt
- Cập nhật bản cài bằng script: chạy lại script cài. Cài một phiên bản cụ thể:
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.7 sh(0.5.7 là số ví dụ của tài liệu). - Bản cài tay: xoá thư viện cũ trước bằng
sudo rm -rf /usr/lib/ollama, rồi tải và giải nén lại. - Ổ đĩa sau khi lên v0.40.x: model tải bằng bản cũ được nâng cấp nền, bản gốc được giữ làm dự phòng, nên tạm tốn thêm dung lượng. Ghi chú phát hành v0.40.2 có lệnh dọn bản dự phòng.
- Docker: tải image mới và tạo lại container; model nằm trong volume
ollamanên không mất.
Gỡ hẳn bản cài trên Linux (nguyên văn tài liệu Ollama):
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 # xoá cả model đã tảiBản Docker gỡ bằng lệnh Docker chung: docker rm -f ollama, rồi docker volume rm ollama nếu muốn xoá cả model (ghép từ cú pháp chính thức, hãy thử trên máy thử trước).
Nguồn: Ollama – Linux: cập nhật, gỡ · Ollama v0.40.2
An toàn cho máy chủ AI Local
- Không mở cổng 11434 ra Internet. API của Ollama không có xác thực. Cisco (01/09/2025) đã tìm thấy 1.139 máy chủ Ollama lộ ra Internet. Đặt
OLLAMA_HOST=0.0.0.0nghĩa là mọi máy trong mạng gọi được. - Proxy và đường hầm không tự thêm đăng nhập. Tài liệu Ollama có mẫu đưa qua Nginx, ngrok, Cloudflare Tunnel, nhưng các mẫu này không có xác thực; muốn công khai phải tự thêm lớp đăng nhập.
- Cho nhóm dùng qua giao diện có tài khoản như Open WebUI cho cả nhóm; làm việc từ xa qua VPN, xem Truy cập AI Local từ xa qua Tailscale.
- Cập nhật bản vá. Ví dụ CVE-2026-7482 (điểm 9.1) làm lộ bộ nhớ, có thể gồm khoá API và hội thoại, ở các bản Ollama trước 0.17.1.
- Tài khoản riêng, khoá riêng. Dịch vụ chạy bằng tài khoản
ollama; khoá, mật khẩu chỉ để trong tệp cấu hình trên máy, không gửi qua chat, không dán vào prompt.
Nguồn: Ollama FAQ – mạng, proxy · Ollama – khoá bị bỏ qua · CVE-2026-7482 · Cisco – máy chủ Ollama lộ ra Internet
Bắt đầu từ đâu?
- Hôm nay: kiểm tra
nvidia-smi, cài Ollama bằng systemd, chạy một model nhỏ và xác nhậnollama psbáo chạy trên GPU. - Tuần này: chuyển model sang ổ riêng, chỉnh context theo việc, khởi động lại máy để chắc dịch vụ tự lên, ghi lại các bước vào sổ vận hành.
- Khi mở cho nhóm: dựng Open WebUI có tài khoản và phân quyền, đặt người phụ trách cập nhật bản vá, cân nhắc router lai AI Local và cloud cho việc khó.
Muốn được tư vấn hoặc cài đặt AI Local theo nhu cầu riêng, bạn có thể đăng ký Tư vấn 1-1 hoặc Coaching 1-1 cho doanh nghiệp; chi phí báo sau buổi tư vấn.
Đọc tiếp: Open WebUI cho cả nhóm →
Câu hỏi thường gặp
Nên cài Ollama thẳng vào máy hay chạy trong Docker?
Cài thẳng và chạy bằng systemd ít lớp hơn, dễ xem log bằng journalctl và mặc định chỉ nghe trên chính máy. Docker hợp khi máy chủ đã chạy nhiều dịch vụ bằng container và bạn muốn gói gọn từng phần. Cách Docker cần thêm NVIDIA Container Toolkit và phải để ý cổng: lệnh mẫu mở cổng 11434 ra mọi địa chỉ của máy.
Máy chủ không gắn màn hình thì cài driver NVIDIA nào?
Hướng dẫn chính thức của NVIDIA cho Ubuntu có lựa chọn riêng cho máy chỉ dùng để tính toán, không có màn hình: cài gói libnvidia-compute và nvidia-dkms-open. Gói nvidia-open là bản đầy đủ, dùng cho máy có màn hình. Cài xong khởi động lại và chạy nvidia-smi để kiểm tra.
Làm sao biết Ollama đang chạy bằng GPU chứ không phải CPU?
Chạy một model rồi gõ ollama ps. Cột PROCESSOR chỉ ghi GPU là model nằm gọn trong card; chỉ ghi CPU là đang chạy bằng RAM hệ thống; có tỷ lệ chia giữa CPU và GPU là model tràn bộ nhớ card, sẽ chậm.
Có nên đặt OLLAMA_HOST=0.0.0.0 để cả công ty gọi vào không?
Chỉ khi thật cần và có tường lửa chặn từ bên ngoài. Ollama không có xác thực, nên 0.0.0.0 nghĩa là mọi máy trong mạng đều gọi được. Cách gọn hơn cho nhóm là để Ollama nghe trên chính máy, cho nhân viên dùng qua Open WebUI có tài khoản, và làm việc từ xa qua VPN như Tailscale.
Nhiều người cùng hỏi một lúc thì Ollama có chịu được không?
Mặc định Ollama xử lý từng yêu cầu một cho mỗi model (OLLAMA_NUM_PARALLEL bằng 1). Khi nhiều người hoặc nhiều AI Agent gọi đồng thời trên máy chủ GPU, có thể cân nhắc vLLM, phần mềm phục vụ nhiều người dùng chạy trên Linux; cách này dành cho người có kinh nghiệm vận hành.
Tài liệu liên quan
- AI Local · AI AgentAI Local là gì? Chạy AI ngay trên máy tính, không tốn phí APIAI Local là gì: chạy model AI mở ngay trên máy tính của bạn, không trả phí API theo lượt, dữ liệu ở lại máy. Lợi ích, giới hạn, so sánh với AI đám mây.
- AI Local · AI AgentCài Ollama trên Windows có card NVIDIA từng bướcCài Ollama trên Windows có card NVIDIA: kiểm tra driver, cài đặt, dời thư mục model sang ổ khác, đặt biến môi trường, xác nhận chạy GPU, sửa lỗi, cập nhật, gỡ.
- AI Local · AI AgentCấu hình máy tính chạy AI Local: RAM, VRAM, Mac hay PC NVIDIACấu hình máy tính chạy AI Local: RAM, VRAM quyết định model nào chạy được, cách ước tính dung lượng theo Q4/Q8, Mac hay PC NVIDIA, ổ cứng, mua máy hay thuê GPU.
- AI Local · AI AgentCài AI Local trên Mac: Ollama và LM StudioCài AI Local trên Mac từng bước: xác định chip Apple hay Intel, cài Ollama và LM Studio, dời thư mục model, tắt tự chạy, kiểm tra, sửa lỗi, cập nhật, gỡ.
Xem tất cả tài liệu hướng dẫn →

Đăng ký Tư vấn 1-1 về AI Local
Chuyên gia Aduca cùng bạn xem nhu cầu, máy đang có và dữ liệu cần bảo vệ, rồi đề xuất nên chạy AI Local, dùng đám mây hay kết hợp. Dịch vụ cài AI Local nằm trong gói Tư vấn 1-1 hoặc Coaching 1-1; chi phí báo sau buổi tư vấn.
Nguồn tham khảo
- Ollama Docs – Linux
- Ollama Docs – Docker
- Ollama Docs – Hardware support (GPU)
- Ollama Docs – FAQ
- Ollama Docs – Troubleshooting
- NVIDIA – Cài driver trên Ubuntu
- NVIDIA – Cài Container Toolkit
- Docker Docs – Mở cổng container
- Docker Docs – Tường lửa và Docker
- Ollama – Các bản phát hành
Lịch sử cập nhật
- 21/10/2026 — Bản đầu.
Miễn trừ trách nhiệm
Bài viết thuộc chuỗi kiến thức của Công ty Cổ phần Giáo dục Aduca, chia sẻ miễn phí cho mục đích học tập. Thông tin kỹ thuật đối chiếu với tài liệu chính thức của các dự án và nền tảng tại ngày cập nhật (có ghi nguồn); phần nhận định là quan điểm của Aduca. OpenClaw, Hermes Agent, Claude (thương hiệu của Anthropic), ChatGPT (thương hiệu của OpenAI), n8n (thương hiệu của n8n GmbH), các phần mềm chạy model và các model AI mở (Ollama, LM Studio, Qwen, Gemma, gpt-oss…), Obsidian, Notion, phương pháp Building a Second Brain (Tiago Forte) cùng các phần mềm, dịch vụ nêu trong bài thuộc về chủ sở hữu tương ứng, không thuộc Aduca; Aduca không phải đối tác chính thức của các công ty này. Tính năng, gói và giá có thể thay đổi bất cứ lúc nào – hãy kiểm tra trang chính thức trước khi mua. Kết quả áp dụng phụ thuộc quy trình, dữ liệu và con người của từng doanh nghiệp; bài viết không cam kết doanh thu hay hiệu quả cụ thể. © 2026 Aduca — được trích dẫn khi ghi rõ nguồn aduca.vn.