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

Docker

Docker를 사용하여 AI/ML 워크플로우를 간소화하세요! 모델을 배포하고, 재현성을 보장하며, 다양한 환경에서 효율적으로 확장하는 방법을 알아보세요.

Docker는 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 플랫폼으로, 컨테이너화를 통해 컨테이너화. 빠르게 진화하고 있는 인공 지능(AI) 분야에서 Docker 는 "내 컴퓨터에서 작동"이라는 중요한 과제를 해결합니다. 패키징을 통해 머신 러닝(ML) 모델과 함께 코드, 런타임, 시스템 도구 및 라이브러리를 컨테이너라는 표준화된 단위로 패키징함으로써, Docker는 소프트웨어가 소프트웨어가 컴퓨팅 환경에 관계없이 엄격하게 동일한 방식으로 실행되도록 보장합니다. 이러한 일관성은 최신 MLOps 파이프라인에 필수적이며, 로컬 개발에서 로컬 개발에서 클라우드 컴퓨팅 인프라 또는 클라우드 컴퓨팅 인프라 또는 엣지 디바이스로 원활하게 전환할 수 있습니다.

Docker의 핵심 개념

Docker를 이해하려면 워크플로우를 정의하는 세 가지 기본 구성 요소에 익숙해야 합니다.

  • 도커파일: 사용자가 명령줄에서 호출할 수 있는 모든 명령이 포함된 텍스트 문서입니다. 줄에서 호출할 수 있는 모든 명령이 포함된 텍스트 문서입니다. AI 프로젝트의 경우 도커파일은 레시피 역할을 하며, 기본 운영 체제를 지정하고 운영 체제를 지정하고, 다음과 같은 언어를 설치하는 Python과 같은 언어를 설치하고, 필요한 프레임워크를 설정합니다. PyTorch 또는 TensorFlow.
  • 도커 이미지: 이미지는 Docker 컨테이너를 만들기 위한 지침이 포함된 읽기 전용 템플릿입니다. 특정 순간의 애플리케이션 상태를 캡처합니다. 개발자는 종종 레지스트리에서 최적화된 기본 이미지를 사용합니다. 의 최적화된 기본 이미지를 사용하여 사전 설치된 드라이버를 활용하기도 합니다. GPU 가속을 위해 사전 설치된 드라이버를 활용합니다.
  • 도커 컨테이너: 컨테이너는 실행 가능한 이미지 인스턴스입니다. 컨테이너는 호스트의 운영 체제 커널을 공유하면서 애플리케이션을 호스트의 운영 체제 커널을 공유하면서 애플리케이션을 호스트 시스템으로부터 격리합니다. 이러한 격리를 통해 소프트웨어 충돌이 안정적인 모델 배포를 위한 핵심 요건인 소프트웨어 충돌을 최소화합니다.

실제 AI 애플리케이션에서의 도커

Docker는 강력한 컴퓨터 비전 솔루션을 배포하는 데 필수적인 컴퓨터 비전(CV) 솔루션을 배포하는 데 필수적입니다.

  1. 엣지 AI 배포: 다음과 같은 리소스 제약이 있는 디바이스에 모델을 배포할 때 도커 컨테이너는 다음과 같은 특정 종속성을 포함하는 다음과 같은 특정 종속성을 포함하는 경량 환경을 제공합니다. OpenCV 및 하드웨어별 라이브러리와 같은 특정 종속성을 포함하는 경량 환경을 제공합니다. 예를 들어 Ultralytics YOLO11 모델을 도커 컨테이너에 패키징하면 을 수천 대의 원격 카메라에 쉽게 푸시할 수 있습니다. 개별 디바이스 구성에 대한 걱정 없이 개별 디바이스 구성에 대한 걱정 없이
  2. 재현 가능한 연구 및 교육: 학술 및 산업 연구에서 결과를 재현하는 것은 매우 중요합니다. Docker를 사용하면 연구자는 모델 훈련 중에 사용된 모든 라이브러리의 정확한 버전을 고정할 수 있습니다. 모델 훈련. 이렇게 하면 소프트웨어 업데이트로 인한 소프트웨어 업데이트로 인한 불일치를 없애고 다른 사람들이 결과를 확인하거나 작업을 기반으로 구축할 수 있도록 하여 데이터 과학

Docker와 YOLO 통합

Docker 컨테이너 내에서 추론을 실행하면 환경이 깨끗하게 유지되고 종속성이 다른 시스템 패키지와 충돌하지 않도록 다른 시스템 수준 패키지와 충돌하지 않도록 합니다. 다음은 일반적으로 Docker 컨테이너 내에서 실행되는 간단한 Python 스크립트입니다. 컨테이너 내에서 실행하여 이미지 세분화 또는 탐지 작업을 실행하기 위해 일반적으로 실행되는 간단한 Python 스크립트입니다.

from ultralytics import YOLO

# Load the YOLO11 model (downloads automatically if not present)
model = YOLO("yolo11n.pt")

# Perform object detection on an online image source
results = model("https://ultralytics.com/images/bus.jpg")

# Print the number of objects detected to verify inference
print(f"Detected {len(results[0].boxes)} objects in the image.")

도커와 가상 머신

두 기술 모두 애플리케이션을 격리하지만 작동 방식은 다릅니다.

  • 가상 머신(VM): VM은 전체 게스트 운영 체제를 포함하여 전체 컴퓨터 시스템을 에뮬레이션합니다. 시스템을 에뮬레이트합니다. 따라서 VM은 무겁고 시작 속도가 느립니다. Red Hat은 아키텍처의 차이점을 설명하는 자세한 비교 아키텍처의 차이점을 설명합니다.
  • 도커 컨테이너: 컨테이너는 하드웨어가 아닌 운영 체제를 가상화합니다. 컨테이너는 호스트의 커널을 호스트의 커널을 공유하므로 훨씬 더 가볍고 효율적입니다. 이러한 효율성은 다음과 같은 경우에 매우 중요합니다. 고성능 모델을 배포할 때 매우 중요합니다. 속도와 정확성을 극대화하는 것을 목표로 하는 YOLO26과 같은 고성능 모델을 배포할 때 매우 중요합니다. 최소한의 오버헤드로.

Kubernetes와의 관계

도커와 쿠버네티스는 서로 다르지만 상호 보완적인 도구입니다. Docker는 개별 컨테이너를 생성하고 실행하는 데 사용됩니다. 그러나 모델 서비스를 위한 서버 클러스터에서 수백 개의 컨테이너를 관리할 때는 모델 서빙을 위한 서버 클러스터에서 수백 개의 컨테이너를 관리하려면 오케스트레이션 도구가 필요합니다. Kubernetes는 Docker 컨테이너의 스케줄링과 실행을 조정하여 엔터프라이즈를 위한 높은 엔터프라이즈급을 위한 고가용성 및 확장성 확장성을 보장합니다. 이러한 시너지 효과에 대한 자세한 내용은 Kubernetes 설명서를 참조하세요.

곧 출시될 울트라리틱스 플랫폼과 같은 Ultralytics 에코시스템의 향후 개발에는 이러한 컨테이너화 원칙을 활용하여 데이터 소싱, 교육 및 배포 워크플로우를 간소화하고 인프라 관리의 복잡성을 인프라 관리의 복잡성을 더욱 추상화할 것입니다.

Ultralytics 커뮤니티 가입

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

지금 참여하기