Yolo 비전 선전
선전
지금 참여하기
용어집

Docker

Docker가 재현 가능한 AI 배포를 어떻게 가능하게 하는지 알아보세요. 클라우드에서 에지 디바이스까지 원활한 확장을 위해 Ultralytics 모델을 컨테이너에 패키징하는 방법을 배워보세요.

도커(Docker)는 개발자가 컨테이너화를 통해 애플리케이션의 배포, 확장 및 관리를 자동화할 수 있도록 지원하는 오픈소스 플랫폼입니다. 인공지능 및 머신러닝 분야에서 도커는 코드와 모든 종속성(라이브러리, 시스템 도구, 설정 등)을 패키징하는 표준화된 소프트웨어 단위로 기능하여, 애플리케이션이 서로 다른 컴퓨팅 환경에서도 신속하고 안정적으로 실행되도록 합니다. 이를 통해 흔히 발생하는 "내 컴퓨터에서는 작동하는데" 문제를 해결하여, 연구자의 노트북에서 훈련된 신경망이 대규모 클라우드 서버나 에지 디바이스에 배포될 때도 정확히 동일한 방식으로 동작하도록 보장합니다.

AI와 머신러닝에 도커가 중요한 이유

현대적인 머신러닝 운영(MLOps)은 재현성과 이식성에 크게 의존합니다. AI 프로젝트는 종종 특정 버전의 Python, GPU 위한 CUDA , PyTorch와 같은 딥러닝 프레임워크 등 복잡한 소프트웨어 스택을 포함합니다. PyTorch 또는 TensorFlow. 이러한 요소들을 서로 다른 팀과 인프라 전반에 걸쳐 수동으로 관리하는 것은 오류 발생 가능성이 높습니다.

도커는 가볍고 독립적인 컨테이너를 생성함으로써 이를 단순화합니다. 각 인스턴스에 완전한 운영 체제가 필요한 기존 가상 머신(VM)과 달리, 컨테이너는 호스트 머신의 OS 커널을 공유하지만 격리된 사용자 공간에서 실행됩니다. 이로 인해 리소스 효율성이 크게 향상되고 시작 속도가 빨라지며, 이는 모델 서비스 인프라를 확장하거나 분산 훈련 작업을 실행할 때 매우 중요합니다.

실제 애플리케이션

도커는 초기 실험부터 최종 배포에 이르기까지 AI 라이프사이클 전반에 걸쳐 널리 사용됩니다.

  1. 일관된 훈련 환경: 데이터 사이언스 팀은 통합된 개발 환경을 공유하기 위해 Docker 이미지를 사용할 수 있습니다. 예를 들어, 객체 탐지 작업을 수행하는 연구원은 필요한 모든 드라이버와 라이브러리가 포함된 사전 구축된 이미지를 가져올 수 있습니다. 이를 통해 YOLO26 모델을 훈련할 때, 기본 하드웨어 차이와 관계없이 동료들이 결과를 재현할 수 있도록 보장합니다.
  2. 에지 AI 배포: 스마트 시티 감시 시스템에서 업데이트된 모델은 교통 카메라나 드론과 같은 수천 개의 에지 장치로 배포되어야 합니다. 도커 컨테이너를 통해 엔지니어는 새 모델 버전을 패키징하고 무선으로 배포할 수 있습니다. 컨테이너에 추론 런타임이 포함되어 있기 때문에 업데이트 과정은 원활하며 장치의 핵심 운영 체제를 방해하지 않습니다.

도커 vs. 쿠버네티스 vs. 가상 머신

Docker의 구체적인 역할을 이해하기 위해서는 Docker를 관련 기술과 구분하는 것이 도움이 됩니다:

  • Docker 대 가상 머신(VM): VM은 하드웨어를 가상화하므로 각 VM은 하이퍼바이저 위에 전체 운영 체제(Windows나 Linux 등)를 실행합니다. 이는 상당한 메모리와 CPU 소모합니다. Docker는 운영 체제를 가상화하므로 컨테이너가 VM보다 훨씬 작고 빠릅니다.
  • Docker 대 Kubernetes: 이 두 기술은 경쟁 관계가 아닌 상호 보완적입니다. Docker는 개별 컨테이너를 생성하고 실행하는 도구입니다. Kubernetes는 Docker 컨테이너 클러스터를 관리하는 컨테이너 오케스트레이션 플랫폼으로, 대규모 클라우드 컴퓨팅 환경에서 자동 확장, 부하 분산, 자가 복구 등의 작업을 처리합니다.

예시: 컨테이너에서 추론 실행하기

다음 예시는 컴퓨터 비전을 위해 설계된 Docker 컨테이너 내부에서 Python 어떻게 보일 수 있는지 보여줍니다. 이 스크립트는 ultralytics 모델을 로드하고 추론을 수행하는 패키지입니다. 컨테이너 환경은 올바른 종속성(예: opencv-pythontorch이미 존재한다.

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.")

워크플로우에 Docker 통합하기

컨테이너화를 시작하기 위해 개발자는 일반적으로 Dockerfile이미지를 조립하는 모든 명령어가 포함된 텍스트 문서입니다. 한번 빌드된 이 이미지들은 레지스트리 같은 곳에 저장될 수 있습니다. 도커 허브 또는 NVIDIA 카탈로그GPU 최적화 컨테이너를 제공하는

Dockerfile을 수동으로 관리하지 않고도 훈련 및 배포 프로세스를 간소화하려는 분들을 위해 Ultralytics 클라우드 환경의 복잡성을 처리하는 통합 도구를 제공합니다. 이를 통해 사용자는 인프라 구성보다는 모델 정확도 향상에 집중할 수 있습니다. 또한, 당사의 Docker 빠른 시작 가이드를 통해 컨테이너에서 Ultralytics 즉시 실행하는 방법을 알아볼 수 있습니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기