導入
DockerでDocling運用 (docling-serve)
公式docling-serve HTTP APIをコンテナ運用。Python環境不要。正像選択 (CPUとCUDA)、5001番公開、UI有効化、curl試験。高度デプロイは公式docling-serve企画参照。
1
Step 1
Dockerが答えの場合・否の場合
- Docker利用: アプリ・基盤・組織がHTTP (
/v1/convert/source) 経由・再現デプロイ・ホストPython分離を求める場合。 - Docker不要: 単発ローカル変換。
pip install docling+docling convert file.pdf --to mdが高速 (概要参照)。 - 像は巨大 (4〜11GB)。base/CPU約4.4GB、CUDA 12.8約11.4GB。一度取得し使い回す。
2
Step 2
像選択: CPU版とCUDA版
全像はquay.io/docling-project/…とghcr.io/docling-project/…でlinux/amd64向け (base/CPUはarm64追加)。手元がpodmanならdockerを置換。タグ則: base/CPU像はlatest・mainあり。CUDA像にlatestなし (PyTorchと共にCUDA陳腐化のため)。CUDA像は必ず明示固定 (例quay.io/docling-project/docling-serve-cu130:v1.18.0)。ROCm像は存在するが未配布 (自前ビルド)。軽量像 (重みなし) は計画中。
docker pull quay.io/docling-project/docling-serve-cpudocker pull quay.io/docling-project/docling-serve-cu130:v1.18.0| イメージ | 用途 | Arch・容量 |
|---|---|---|
docling-serve / docling-serve-cpu | CPU専用サーバー・手元・CI | amd64 + arm64、約4.4GB |
docling-serve-cu128 | CUDA 12.8のNVIDIA GPU | amd64、約11.4GB |
docling-serve-cu130 | CUDA 13.0のNVIDIA GPU | amd64 (+arm64)、容量TBD |
3
Step 3
サーバー起動 (Docker / Podman)
CPU (最多)。 初回起動で重みを像内キャッシュへ。時間と容量を確保。compose運用はdocs/deployment.md。CUDA GPU (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.04
Step 4
代替: pip版docling-serve
コンテナなしの同一サーバー。VMやデバッグに有用:
pip install "docling-serve[ui]"docling-serve run --enable-ui5
Step 5
ポート・文書・UI・健全確認
/docsが描画されれば健全。ポート競合時は-p 5002:5001で付け替えURLも:5002に。
- API基底:
http://127.0.0.1:5001 - 対話API文書 (Swagger):
http://127.0.0.1:5001/docs - 試用UI:
http://127.0.0.1:5001/ui(DOCLING_SERVE_ENABLE_UI=1/--enable-ui時のみ) - 安定変換口:
POST /v1/convert/source(v1 API。旧式利用者はv1移行記参照)。
6
Step 6
APIで初文書変換
応答は要求選択でMarkdown/JSON/HTML。各実行時選択肢はdocs/usage.mdとdocling-serve文書のREST解説で。
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"}]
}'
7
Step 7
設定・運用記
- env変数で設定 (
.env.exampleとdocs/configuration.md参照)。例DOCLING_SERVE_ENABLE_UI=1。 - 再起動後も重み保持のためキャッシュ volume 化。巨大PDF用にメモリ上限 (メモリ不足参照)。
- 本番の認証/TLS/制限はリバースプロキシ側。
docs/deployment.mdのcompose例が出発点。 - 本番タグ固定 (
:v1.18.0等、:latest不可)。特にCUDA。
8
Step 8
頻出コンテナ問題
- 起動せず — docling-serve起動せず参照。ポート競合・
[ui]欠落・entrypoint誤り。 /ui404 —DOCLING_SERVE_ENABLE_UI=1/--enable-ui忘れ。- GPU像がCPU動作 — ホストにNVIDIAドライバ + toolkitと
--gpus all要。内部でnvidia-smi確認。 - CUDA版
:latest取得失敗 — 仕様。CUDA像は明示版タグのみ。 - 初回要求が遅い — 重み取得中。以後はキャッシュ。
9
Step 9
Docker FAQ
Dockerとpip導入どちら?
ローカルCLI変換はpip (
pip install docling)。アプリ・組織用の中立HTTP APIが要る場合にDocker (docling-serve)。quay.ioとghcr.ioどちら?
同一像の両鏡。高速・許可側を利用。
CUDA版:latestが無いのはなぜ?
PyTorch進行でCUDAが陳腐化するため、
:latestは暗黙切替えの危険。 -cu130:v1.18.0等を明示固定。高度デプロイは公式docling-serve企画に文書化。Docling v2.129.0で検証 · 最終確認 2026-09-22 · 公式ソース