Exécuter Docling avec Docker (docling-serve)
Exécutez l'API HTTP officielle docling-serve en conteneur — sans environnement Python. Choisissez la bonne image (CPU vs CUDA), publiez le port 5001, activez l'UI et testez avec curl. Le déploiement avancé vit dans le projet officiel docling-serve.
Quand Docker est (et n'est pas) la réponse
- Utilisez Docker quand une app, un pipeline ou une équipe a besoin de Docling via HTTP (
/v1/convert/source), de déploiements reproductibles ou d'isolation du Python hôte. - Omettez Docker pour une conversion locale ponctuelle —
pip install doclingplusdocling convert file.pdf --to mdest plus rapide (voir l'aperçu). - Les images sont grosses (4–11 Go) : base/CPU ~4,4 Go, CUDA 12.8 ~11,4 Go. Tirez une fois, réutilisez partout.
Quelle image tirer : CPU vs CUDA
Toutes les images sont publiées sur quay.io/docling-project/… et ghcr.io/docling-project/… pour linux/amd64 (base/CPU en plus arm64). Remplacez docker par podman si c'est votre runtime. Règle de tags : les images base/CPU utilisent latest et main ; les images CUDA n'ont volontairement pas de latest (CUDA se périme avec PyTorch). Épinglez toujours les CUDA explicitement, p. ex. quay.io/docling-project/docling-serve-cu130:v1.18.0. Une image ROCm existe mais n'est pas publiée (compilez localement) ; des images slim sans poids pré-téléchargés sont prévues.
docker pull quay.io/docling-project/docling-serve-cpudocker pull quay.io/docling-project/docling-serve-cu130:v1.18.0| Image | Quand | Arch / taille |
|---|---|---|
docling-serve / docling-serve-cpu | Serveurs CPU-only, portables, CI | amd64 + arm64, ~4,4 Go |
docling-serve-cu128 | GPU NVIDIA avec CUDA 12.8 | amd64, ~11,4 Go |
docling-serve-cu130 | GPU NVIDIA avec CUDA 13.0 | amd64 (+arm64), taille TBD |
Démarrez le serveur (Docker / Podman)
CPU (le plus courant). Le premier démarrage télécharge les poids dans le cache de l'image — prévoyez temps et disque. Déploiements compose dans docs/deployment.md. GPU CUDA (exige nvidia-container-toolkit / --gpus).
podman run -p 5001:5001 -e DOCLING_SERVE_ENABLE_UI=1 quay.io/docling-project/docling-servedocker run --gpus all -p 5001:5001 -e DOCLING_SERVE_ENABLE_UI=1 quay.io/docling-project/docling-serve-cu130:v1.18.0Alternative : docling-serve via pip
Le même serveur sans conteneurs — utile sur une VM ou pour déboguer :
pip install "docling-serve[ui]"docling-serve run --enable-uiPorts, docs, UI et health check
Si /docs s'affiche, le serveur est sain. Si le port est occupé, remappez avec -p 5002:5001 et utilisez :5002 dans les URL.
- API de base :
http://127.0.0.1:5001 - Docs API interactives (Swagger) :
http://127.0.0.1:5001/docs - UI de test :
http://127.0.0.1:5001/ui(uniquement avecDOCLING_SERVE_ENABLE_UI=1/--enable-ui) - Endpoint de conversion stable :
POST /v1/convert/source(API v1 — avec du vieux code, voir les notes de migration v1).
Convertissez votre premier document via l'API
La réponse contient Markdown / JSON / HTML selon les options demandées. Explorez chaque option dans docs/usage.md et la référence REST des docs docling-serve.
curl -X POST http://localhost:5001/v1/convert/source -H 'Content-Type: application/json' -d '{"sources": [{"kind": "http", "url": "https://arxiv.org/pdf/2501.17887"}]}'curl -X 'POST' \
'http://localhost:5001/v1/convert/source' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"sources": [{"kind": "http", "url": "https://arxiv.org/pdf/2501.17887"}]
}'
Notes de configuration et déploiement
- Configurez via variables d'environnement (voir
.env.exampleet docs/configuration.md), p. ex.DOCLING_SERVE_ENABLE_UI=1. - Montez un volume de cache pour que les poids survivent aux redémarrages ; fixez des limites mémoire pour les gros PDF (voir mémoire pleine).
- Mettez auth / TLS / limites dans un reverse proxy en production ; les exemples compose de
docs/deployment.mdsont le point de départ. - Épinglez les tags en production (
:v1.18.0, pas:latest) — surtout les CUDA.
Problèmes de conteneurs fréquents
- Le serveur ne démarre pas — voir docling-serve ne démarre pas : conflit de port, extra
[ui]manquant ou entrypoint erroné. /ui404 — vous avez oubliéDOCLING_SERVE_ENABLE_UI=1/--enable-ui.- L'image GPU tourne sur CPU — l'hôte a besoin des pilotes NVIDIA + toolkit et de
--gpus all; confirmez dedans avecnvidia-smi. - Le pull de
:latestCUDA échoue — attendu : les images CUDA ne portent que des tags de version explicites. - Première requête lente — les poids se téléchargent ; les suivantes réutilisent le cache.
FAQ Docker
Docker ou pip install ?
pip install docling) pour la conversion CLI locale. Docker (docling-serve) quand vous avez besoin d'une API HTTP agnostique pour app ou équipe.Quel registre — quay.io ou ghcr.io ?
Pourquoi pas de tag :latest CUDA ?
:latest pourrait changer votre CUDA en silence. Épinglez des versions explicites comme -cu130:v1.18.0.Où est la doc API ?
/docs, plus les guides d'utilisation, de configuration et de déploiement en amont.Le déploiement avancé est documenté dans le projet officiel docling-serve. Vérifié avec Docling v2.129.0 · Dernière vérification 2026-09-22 · Source officielle