Docker가 재현 가능한 AI 배포를 어떻게 가능하게 하는지 알아보세요. 클라우드에서 에지 디바이스까지 원활한 확장을 위해 Ultralytics 모델을 컨테이너에 패키징하는 방법을 배워보세요.
도커(Docker)는 개발자가 컨테이너화를 통해 애플리케이션의 배포, 확장 및 관리를 자동화할 수 있도록 지원하는 오픈소스 플랫폼입니다. 인공지능 및 머신러닝 분야에서 도커는 코드와 모든 종속성(라이브러리, 시스템 도구, 설정 등)을 패키징하는 표준화된 소프트웨어 단위로 기능하여, 애플리케이션이 서로 다른 컴퓨팅 환경에서도 신속하고 안정적으로 실행되도록 합니다. 이를 통해 흔히 발생하는 "내 컴퓨터에서는 작동하는데" 문제를 해결하여, 연구자의 노트북에서 훈련된 신경망이 대규모 클라우드 서버나 에지 디바이스에 배포될 때도 정확히 동일한 방식으로 동작하도록 보장합니다.
현대적인 머신러닝 운영(MLOps)은 재현성과 이식성에 크게 의존합니다. AI 프로젝트는 종종 특정 버전의 Python, GPU 위한 CUDA , PyTorch와 같은 딥러닝 프레임워크 등 복잡한 소프트웨어 스택을 포함합니다. PyTorch 또는 TensorFlow. 이러한 요소들을 서로 다른 팀과 인프라 전반에 걸쳐 수동으로 관리하는 것은 오류 발생 가능성이 높습니다.
도커는 가볍고 독립적인 컨테이너를 생성함으로써 이를 단순화합니다. 각 인스턴스에 완전한 운영 체제가 필요한 기존 가상 머신(VM)과 달리, 컨테이너는 호스트 머신의 OS 커널을 공유하지만 격리된 사용자 공간에서 실행됩니다. 이로 인해 리소스 효율성이 크게 향상되고 시작 속도가 빨라지며, 이는 모델 서비스 인프라를 확장하거나 분산 훈련 작업을 실행할 때 매우 중요합니다.
도커는 초기 실험부터 최종 배포에 이르기까지 AI 라이프사이클 전반에 걸쳐 널리 사용됩니다.
Docker의 구체적인 역할을 이해하기 위해서는 Docker를 관련 기술과 구분하는 것이 도움이 됩니다:
다음 예시는 컴퓨터 비전을 위해 설계된 Docker 컨테이너 내부에서 Python 어떻게 보일 수 있는지 보여줍니다. 이 스크립트는 ultralytics 모델을 로드하고 추론을 수행하는 패키지입니다. 컨테이너 환경은 올바른 종속성(예: opencv-python 및 torch이미 존재한다.
from ultralytics import YOLO
# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")
컨테이너화를 시작하기 위해 개발자는 일반적으로 Dockerfile이미지를 조립하는 모든 명령어가 포함된 텍스트 문서입니다.
한번 빌드된 이 이미지들은 레지스트리 같은 곳에 저장될 수 있습니다.
도커 허브 또는
NVIDIA 카탈로그GPU 최적화 컨테이너를 제공하는
Dockerfile을 수동으로 관리하지 않고도 훈련 및 배포 프로세스를 간소화하려는 분들을 위해 Ultralytics 클라우드 환경의 복잡성을 처리하는 통합 도구를 제공합니다. 이를 통해 사용자는 인프라 구성보다는 모델 정확도 향상에 집중할 수 있습니다. 또한, 당사의 Docker 빠른 시작 가이드를 통해 컨테이너에서 Ultralytics 즉시 실행하는 방법을 알아볼 수 있습니다.