Ce face vLLM în Docker (imaginea vllm/vllm-openai)
vLLM publică imaginea oficială vllm/vllm-openai pe Docker Hub, care rulează serverul compatibil OpenAI. Orice argument de engine se adaugă după tag-ul imaginii. Imaginea merge și cu Podman. Pentru AMD există vllm/vllm-openai-rocm (latest și nightly).
Containerul are nevoie de memoria partajată a gazdei: --ipc=host sau --shm-size. PyTorch folosește memorie partajată între procese, mai ales la tensor parallelism. Montarea ~/.cache/huggingface evită descărcarea modelului la fiecare pornire.
Dependențele opționale nu sunt incluse, din motive de licență; le adaugi într-un Dockerfile propriu peste imagine, cu aceeași versiune vLLM. Pe gazde cu drivere NVIDIA mai vechi, VLLM_ENABLE_CUDA_COMPATIBILITY=1 activează bibliotecile de compatibilitate CUDA din imagine (doar pentru anumite GPU-uri profesionale și de centru de date).
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
--runtime nvidia --gpus all |
Acces la GPU-urile NVIDIA. |
-v ~/.cache/huggingface:/root/.cache/huggingface |
Cache-ul de modele al gazdei. |
--env "HF_TOKEN=$HF_TOKEN" |
Tokenul Hugging Face pentru modele protejate. |
-p 8000:8000 |
Portul serverului. |
--ipc=host / --shm-size |
Memorie partajată pentru procesele PyTorch. |
--model MODEL [ARGUMENTE] |
Argumentele de engine, după numele imaginii. |
Exemple practice
Exemplul 1: Comanda oficială
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=$HF_TOKEN" \
-p 8000:8000 \
--ipc=host \
vllm/vllm-openai:latest \
--model Qwen/Qwen3-0.6B
Exemplul 2: Cu Podman
podman run --device nvidia.com/gpu=all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=$HF_TOKEN" \
-p 8000:8000 \
--ipc=host \
docker.io/vllm/vllm-openai:latest \
--model Qwen/Qwen3-0.6B
Exemplul 3: Dependențe opționale într-o imagine proprie
FROM vllm/vllm-openai:v0.11.0
# e.g. install the `audio` optional dependencies
# NOTE: Make sure the version of vLLM matches the base image!
RUN uv pip install --system vllm==0.11.0
Greșeli frecvente și bune practici
- Pornești fără
--ipc=hostsau--shm-size; procesele PyTorch nu pot partaja memorie. - Instalezi în imagine o versiune vLLM diferită de cea a imaginii de bază.
- În imaginile proprii uiți de
vllm download-kernels; kernel-urile FlashInfer se descarcă și se compilează la fiecare pornire.