본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

dmr

0

dmr(Docker Model Runner)은 Docker Desktop이나 Docker Engine을 설치하지 않고도 로컬에서 대규모 언어 모델과 AI 모델을 직접 실행할 수 있도록 만든 단일 바이너리형 도구입니다.

모델 실행기추론

소개

dmr(Docker Model Runner)은 Docker Desktop이나 Docker Engine을 설치하지 않고도 로컬에서 대규모 언어 모델과 AI 모델을 직접 실행할 수 있도록 만든 단일 바이너리형 도구입니다. Docker Inc.가 GitHub 저장소 docker/model-runner에서 공개한 Apache-2.0 라이선스 프로젝트의 일부이며, 추론 데몬(dmr serve)과 모델 관리용 CLI(run, pull, ls, rm, ps 등)를 하나로 묶어 Docker 구성요소 없이 모델을 다운로드·실행·관리하는 데 목적이 있습니다.

상세정보

Docker 의존성 없는 단일 바이너리

dmr은 inference daemon(dmr serve)과 run, ls, pull, rm, ps 등의 모델 관리 CLI를 한 바이너리에 모두 포함하여 Docker Desktop이나 실행 중인 Docker Engine 없이 동작합니다.

OCI 호환 레지스트리 기반 모델 관리

Docker Hub 또는 OCI 호환 레지스트리에서 직접 모델을 가져오고, 목록 조회, 실행, 삭제까지 일관된 명령 흐름으로 처리할 수 있습니다.

llama.cpp 통합

Docker 이미지는 공식 ghcr.io/ggml-org/llama.cpp 컨테이너의 llama-server 바이브러리를 /app/bin/com.docker.llama-server와 /app/lib로 정규화해 포함하며, LLAMA_SERVER_VERSION(예: b8840, latest)과 LLAMA_SERVER_VARIANT(cpu, cuda, rocm)로 빌드 변형을 선택합니다.

vLLM 백엔드 지원

vLLM을 대체 추론 백엔드로 빌드해 사용할 수 있으며, VLLM_VERSION, VLLM_CUDA_VERSION, VLLM_PYTHON_TAG(cp38-abi3, Python 3.8+ 호환) 인자로 linux/amd64, linux/arm64 아키텍처용 휠을 선택합니다.

REST API 및 메트릭 노출

dmr serve는 기본적으로 TCP 12434 포트에서 수신하며, –port/–socket/–models-path 옵션으로 조정 가능합니다. /models, /models/create, /engines/llama.cpp/v1/chat/completions, /metrics 등의 엔드포인트를 curl로 직접 호출할 수 있고, 기본적으로 /metrics에서 llama.cpp 서버의 Prometheus 호환 메트릭이 활성화됩니다(DISABLE_METRICS=1로 비활성화).

편의 래퍼 및 dmrlet

make로 빌드되는 dmr 래퍼는 빈 포트에서 서버를 띄워 준비될 때까지 기다린 뒤 CLI 명령을 실행하고 종료하는 방식으로 동작합니다. 또한 AI 추론 전용 컨테이너 오케스트레이터 dmrlet은 다중 GPU 매핑을 YAML·디바이스 플러그인 없이 제공합니다.

dmr을 사용하려면 Docker Desktop이 꼭 필요한가요?

아니요. dmr은 Docker Desktop이나 실행 중인 Docker Engine 없이도 동작하도록 설계된 단일 바이너리이며, macOS·Windows·Linux 각각의 설치 채널을 통해 바로 사용할 수 있습니다.

Docker Desktop/Engine 안에서 사용하는 Model Runner와 어떤 관계인가요?

docker/model-runner 저장소는 Docker Desktop과 Docker Engine에 포함된 Model Runner를 위한 코드 베이스이면서, 그 기능을 독립 실행형 dmr 바이너리로도 제공하기 위한 프로젝트입니다. 같은 docker model 명령 흐름을 공유하며 MODEL_RUNNER_HOST로 데몬을 지정해 둘 사이를 전환할 수 있습니다.

어떤 모델을 실행할 수 있나요?

Docker Hub 또는 OCI 호환 레지스트리에 배포된 모델을 가져와 실행할 수 있으며, llama.cpp 기반 백엔드와 vLLM 백엔드를 모두 빌드해 선택할 수 있습니다.

시스템 요구사항

- Windows 11(amd64) 환경에서 winget을 통한 설치 지원
- Docker Desktop 또는 Docker Engine 의존성 불필요(독립 실행형)
- 빌드 시 Go 1.25+, Git, Make 필요
- GPU 지원 시 CGO 의존성 필요: macOS는 Xcode Command Line Tools, Linux는 gcc/g++와 개발 헤더, Windows는 MinGW-w64 또는 Visual Studio Build Tools
- llama.cpp 통합 시 LLAMA_SERVER_VERSION/LLAMA_SERVER_VARIANT로 cpu/cuda/rocm 변형 선택, CUDA는 nvidia/cuda:13.0.2-runtime-ubuntu24.04, ROCm은 rocm/dev-ubuntu-24.04:7.2.1-complete 등 매칭 런타임 베이스 이미지 필요
- vLLM 통합 시 VLLM_VERSION, VLLM_CUDA_VERSION, VLLM_PYTHON_TAG 지정, 기본은 vLLM 0.19.1 / cu130 / cp38-abi3(Python 3.8+ 호환)
- 데몬 기본 포트 12434에서 수신하며, Docker Desktop 내장 Model Runner와 충돌 회피 시 13434 사용 권장