DMR 시작하기

DMR 시작하기

Docker Model Runner(DMR)를 사용하면 Docker로 AI 모델을 로컬에서 실행하고 관리할 수 있어요. 이 페이지에서는 DMR을 활성화하고, 모델을 풀하고 실행하고, 모델 설정을 구성하고, 커스텀 모델을 게시하는 방법을 보여드려요.

출처: 문서

본문

Docker Model Runner 활성화

DMR은 Docker Desktop이나 Docker Engine으로 활성화할 수 있어요. 설정에 따라 아래 안내를 따르세요.

Docker Desktop

  1. 설정 뷰에서 AI 탭으로 이동합니다.
  2. Enable Docker Model Runner 설정을 선택합니다.
  3. 지원되는 NVIDIA GPU가 있는 Windows를 사용한다면 Enable GPU-backed inference도 보고 선택할 수 있어요.
  4. 선택 사항: TCP를 지원하려면 Enable host-side TCP support를 선택합니다.
  5. Port 필드에 사용할 포트를 입력합니다.
  6. 로컬 프런트엔드 웹 앱에서 Model Runner와 상호작용한다면 CORS Allows Origins에서 Model Runner가 요청을 받아들이도록 할 오리진을 선택합니다. 오리진은 웹 앱이 실행되는 URL로, 예를 들어 http://localhost:3131이에요.

이제 CLI에서 docker model 명령을 사용할 수 있고, Docker Desktop 대시보드의 Models 탭에서 로컬 모델을 보고 상호작용할 수 있어요.

Docker Engine

Docker Engine을 설치했는지 확인하세요. Docker Model Runner는 패키지로 제공돼요. 설치하려면 실행하세요:

Ubuntu/Debian:

$ sudo apt-get update
$ sudo apt-get install docker-model-plugin

RPM 기반 배포:

$ sudo dnf update
$ sudo dnf install docker-model-plugin

설치를 테스트해요:

$ docker model version
$ docker model run ai/smollm2

참고: Docker Engine의 TCP 지원은 포트 12434에서 기본적으로 활성화돼요.

Docker Engine에서 DMR 업데이트

Docker Engine에서 Docker Model Runner를 업데이트하려면 docker model uninstall-runner로 제거한 뒤 다시 설치하세요:

docker model uninstall-runner --images && docker model install-runner

참고: 위 명령으로 로컬 모델은 보존되고 Docker Model Runner 이미지만 제거돼요. 업그레이드 중 로컬 모델도 삭제하려면 uninstall-runner 명령에 --models 옵션을 추가하세요.

모델 풀하기

모델은 로컬에 캐시돼요.

참고: Docker CLI를 사용할 때는 HuggingFace에서 직접 모델을 풀할 수도 있어요.

Docker Desktop에서: Models를 선택하고 Docker Hub 탭을 선택합니다. 원하는 모델을 찾아 Pull을 선택합니다.

Docker CLI에서: docker model pull 명령을 사용해요.

예를 들어:

Docker Hub에서 풀기:

docker model pull ai/smollm2:360M-Q4_K_M

HuggingFace에서 풀기:

docker model pull hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF

모델 실행

Docker Desktop에서: Models를 선택하고 Local 탭을 선택합니다. 재생 버튼을 선택합니다. 대화형 채팅 화면이 열려요.

Docker CLI에서: docker model run 명령을 사용해요.

모델 구성

모델의 최대 토큰 제한 같은 것을 Docker Compose로 구성할 수 있어요. Models and Compose - Model configuration options 문서를 참고해 주세요.

모델 게시

참고: 이 기능은 Docker Hub뿐 아니라 OCI Artifact를 지원하는 모든 컨테이너 레지스트리에서 동작해요.

기존 모델에 새 이름을 태그하고 다른 네임스페이스와 리포지토리로 게시할 수 있어요:

# Tag a pulled model under a new name
$ docker model tag ai/smollm2 myorg/smollm2
# Push it to Docker Hub
$ docker model push myorg/smollm2

자세한 내용은 docker model tag와 docker model push 명령 문서를 참고해 주세요.

GGUF 형식의 모델 파일을 OCI Artifact로 패키징해 Docker Hub에 게시할 수도 있어요:

# Download a model file in GGUF format, for example from HuggingFace
$ curl -L -o model.gguf https://huggingface.co/TheBloke/Mistral-7B-v0.1-GGUF/resolve/main/mistral-7b-v0.1.Q4_K_M.gguf
# Package it as OCI Artifact and push it to Docker Hub
$ docker model package --gguf "$(pwd)/model.gguf" --push myorg/mistral-7b-v0.1:Q4_K_M

자세한 내용은 docker model package 명령 문서를 참고해 주세요.

문제 해결

로그 표시

문제를 해결하려면 로그를 표시해요:

Docker Desktop에서: Models를 선택하고 Logs 탭을 선택합니다.

Docker CLI에서: docker model logs 명령을 사용해요.

요청과 응답 검사

요청과 응답을 검사하면 모델 관련 문제를 진단하는 데 도움이 돼요. 예를 들어 컨텍스트 사용량을 평가해 모델의 컨텍스트 창 안에 있는지 확인하거나, 프레임워크로 개발할 때 모델에 전달하는 파라미터를 제어하기 위해 요청의 전체 본문을 표시할 수 있어요.

Docker Desktop에서 각 모델의 요청과 응답을 검사하려면:

Models를 선택하고 Requests 탭을 선택합니다. 이 뷰는 모든 모델에 대한 모든 요청을 표시해요:

  • 요청을 보낸 시간
  • 모델 이름과 버전
  • 프롬프트/요청
  • 컨텍스트 사용량
  • 응답이 생성되는 데 걸린 시간

요청 중 하나를 선택하면 더 자세한 세부 정보를 볼 수 있어요:

  • Overview 탭에서 토큰 사용량, 응답 메타데이터와 생성 속도, 실제 프롬프트와 응답을 확인합니다.
  • Request와 Response 탭에서 요청과 응답의 전체 JSON 페이로드를 봅니다.

참고: 모델을 선택한 뒤 Requests 탭을 선택하면 특정 모델의 요청도 표시할 수 있어요.

관련 페이지

  • API 레퍼런스 — OpenAI 및 Ollama 호환 API 문서
  • 구성 옵션 — 컨텍스트 크기와 런타임 파라미터
  • 추론 엔진 — llama.cpp 및 vLLM 세부 사항
  • IDE 통합 — Cline, Continue, Cursor 등 연결
  • Open WebUI 통합 — 웹 채팅 인터페이스 설정
  • Models and Compose — Compose 애플리케이션에서 모델 사용
  • Docker Model Runner CLI 레퍼런스 — 전체 CLI 문서

더 알아보기 (Learn more)