The images#
Measured by docling.org from quay.io/docling-project manifests on 27 Oct 2026.
Show data table
| GB | |
|---|---|
| docling-serve-cpu | 2.22 GB |
| docling-serve | 5.04 GB |
| docling-serve-cu130 | 5.04 GB |
| docling-serve-cu128 | 5.99 GB |
| Image | For | Architectures | Download (amd64) | Tag to use |
|---|---|---|---|---|
docling-serve-cpu | Servers without a GPU | amd64, arm64 | 2.22 GB | latest or v1.38.2 |
docling-serve | General purpose (PyPI PyTorch) | amd64, arm64 | 5.04 GB | latest or v1.38.2 |
docling-serve-cu130 | NVIDIA, CUDA 13.0 | amd64, arm64 | 5.04 GB | v1.38.2 (no latest) |
docling-serve-cu128 | NVIDIA, CUDA 12.8 (older drivers) | amd64, arm64 | 5.99 GB | v1.38.2 — avoid latest |
All images are published under both quay.io/docling-project/ and ghcr.io/docling-project/. Sizes are compressed downloads we summed from the registry manifests; the README lists larger uncompressed sizes. An AMD ROCm image is supported but not published — the project explains how to build it.
Run it#
docker run -d --name docling -p 5001:5001 \
-e DOCLING_SERVE_ENABLE_UI=1 \
quay.io/docling-project/docling-serve-cpu:v1.38.2
# API http://localhost:5001 · docs /docs · UI /uidocker run -d --name docling --gpus all -p 5001:5001 \
quay.io/docling-project/docling-serve-cu130:v1.38.2curl http://localhost:5001/health
curl http://localhost:5001/versionWhat is inside#
| Command | docling-serve run (entrypoint container-entrypoint) |
|---|---|
| Ports | 5001 (API) and 8080 exposed |
| User | 1001 (non-root) |
| Models | Pre-downloaded; DOCLING_SERVE_ARTIFACTS_PATH=/opt/app-root/src/.cache/docling/models |
| Threads | OMP_NUM_THREADS=4 — raise it on bigger machines |
Read from the v1.38.2 image configuration. Because models are inside the image, containers start without internet access.
docker-compose#
services:
docling:
image: quay.io/docling-project/docling-serve-cpu:v1.38.2
ports:
- "5001:5001"
environment:
DOCLING_SERVE_ENABLE_UI: "1"
DOCLING_SERVE_API_KEY: "change-me" # clients send X-Api-Key
DOCLING_SERVE_MAX_SYNC_WAIT: "300"
DOCLING_SERVE_ENG_LOC_NUM_WORKERS: "2"
OMP_NUM_THREADS: "8"
restart: unless-stoppedFor a GPU, switch the image to a CUDA variant and add a device reservation (deploy.resources.reservations.devices with driver: nvidia). Every DOCLING_SERVE_* setting is explained in the docling-serve guide.
Using the docling CLI from the image#
The image's PATH includes the virtual environment that contains Docling, so you can replace the default command to convert files in a mounted folder:
docker run --rm -v "$PWD:/data" --user "$(id -u)" \
quay.io/docling-project/docling-serve-cpu:v1.38.2 \
docling convert /data/report.pdf --to md --output /dataRunning as your own user ID avoids permission problems on the mounted folder (the image's default user is 1001).
Building your own image#
If you only need the library, a slim image of your own is often smaller. Install the CPU build of PyTorch first and pre-download models at build time:
FROM python:3.12-slim
ENV PIP_NO_CACHE_DIR=1 DOCLING_ARTIFACTS_PATH=/models
RUN pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu \
&& pip install "docling==2.148.0" \
&& docling-tools models download -o /models
WORKDIR /data
ENTRYPOINT ["docling"]docker build -t my-docling .
docker run --rm -v "$PWD:/data" my-docling convert report.pdf --to md --no-ocrFrequently asked questions
Is there an official Docling Docker image?
Yes, for docling-serve: quay.io/docling-project/docling-serve (also on ghcr.io) with -cpu, -cu128 and -cu130 variants for linux/amd64 and linux/arm64. It exposes the REST API on port 5001 and includes the Docling library.
How big is the Docling Docker image?
For v1.38.2 on linux/amd64, the compressed download is 2.22 GB for docling-serve-cpu, 5.04 GB for docling-serve and docling-serve-cu130, and 5.99 GB for docling-serve-cu128 (summed from the registry manifests on 27 October 2026). Uncompressed sizes on disk are larger.
How do I use a GPU with the Docling container?
Install the NVIDIA Container Toolkit, use a CUDA image that matches your driver (for example docling-serve-cu130:v1.38.2) and start it with --gpus all.
Why is my docling-serve-cu128:latest so old?
Because CUDA images are meant to be pulled by version tag. On 27 October 2026, docling-serve-cu128:latest pointed to v1.12.0 built on 6 February 2026, while the current release was v1.38.2. Always pin an explicit version for CUDA images.
Sources
- quay.io/docling-project image manifests (read 27 Oct 2026)
- docling-serve README: container images
- docling-serve deployment examples