DMR 시작하기
DMR 시작하기
Docker Model Runner(DMR)를 사용하면 Docker로 AI 모델을 로컬에서 실행하고 관리할 수 있어요. 이 페이지에서는 DMR을 활성화하고, 모델을 풀하고 실행하고, 모델 설정을 구성하고, 커스텀 모델을 게시하는 방법을 보여드려요.
출처: 문서
본문
Docker Model Runner 활성화
DMR은 Docker Desktop이나 Docker Engine으로 활성화할 수 있어요. 설정에 따라 아래 안내를 따르세요.
Docker Desktop
- 설정 뷰에서 AI 탭으로 이동합니다.
- Enable Docker Model Runner 설정을 선택합니다.
- 지원되는 NVIDIA GPU가 있는 Windows를 사용한다면 Enable GPU-backed inference도 보고 선택할 수 있어요.
- 선택 사항: TCP를 지원하려면 Enable host-side TCP support를 선택합니다.
- Port 필드에 사용할 포트를 입력합니다.
- 로컬 프런트엔드 웹 앱에서 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 문서