Docker에서 YOLOv5 🚀 시작하기#
Ultralytics YOLOv5 Docker 빠른 시작 가이드에 오신 것을 환영합니다! 이 튜토리얼에서는 Docker 컨테이너에서 YOLOv5를 설정하고 실행하는 방법을 단계별로 안내합니다. Docker를 사용하면 격리되고 일관된 환경에서 YOLOv5를 실행할 수 있어, 여러 시스템에서 배포와 의존성 관리를 간소화할 수 있습니다. 이 방식은 애플리케이션과 의존성을 함께 패키징하는 컨테이너화를 활용합니다.
다른 설정 방법은 Colab Notebook
, GCP Deep Learning VM 또는 Amazon AWS 가이드를 참조하세요. Ultralytics 모델에서 Docker를 사용하는 전반적인 내용은 Ultralytics Docker 빠른 시작 가이드를 참조하세요.
사전 요구 사항#
시작하기 전에 다음 항목이 설치되어 있는지 확인하세요:
- Docker: 공식 Docker 웹사이트에서 Docker를 다운로드하여 설치합니다. 컨테이너를 만들고 관리하려면 Docker가 필요합니다.
- NVIDIA 드라이버(GPU 지원에 필요): 버전 455.23 이상의 NVIDIA 드라이버가 설치되어 있는지 확인합니다. 최신 드라이버는 NVIDIA 웹사이트에서 다운로드할 수 있습니다.
- NVIDIA Container Toolkit(GPU 지원에 필요): 이 툴킷을 사용하면 Docker 컨테이너에서 호스트 머신의 NVIDIA GPU에 액세스할 수 있습니다. 자세한 지침은 공식 NVIDIA Container Toolkit 설치 가이드를 참조하세요.
NVIDIA Container Toolkit 설정(GPU 사용자)#
먼저 다음 명령을 실행하여 NVIDIA 드라이버가 올바르게 설치되었는지 확인합니다:
nvidia-smi이 명령은 GPU와 설치된 드라이버 버전에 대한 정보를 표시합니다.
그런 다음 NVIDIA Container Toolkit을 설치합니다. 아래 명령은 Ubuntu와 같은 Debian 기반 시스템 및 Fedora/CentOS와 같은 RHEL 기반 시스템에서 일반적으로 사용됩니다. 배포판에 맞는 지침은 위에 링크된 공식 가이드를 참조하세요:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list패키지 목록을 업데이트하고 NVIDIA Container Toolkit을 설치합니다.
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitDocker에서 CDI 장치 확인#
GPU CDI 장치를 사용할 수 있는지 확인하려면 nvidia-ctk cdi list을 실행합니다(toolkit의 nvidia-cdi-refresh 서비스는 toolkit >= 1.18에서 사양을 자동으로 생성하고 유지 관리합니다).
nvidia-ctk cdi listnvidia.com/gpu=0 및 nvidia.com/gpu=all과 같은 항목이 표시되어야 합니다. Linux에서는 CDI 장치 요청에 Docker >= 28.2.0 및 NVIDIA Container Toolkit >= 1.18이 필요합니다. 기존 --gpus all 플래그는 호스트 데몬이 다시 로드된 후 GPU 액세스가 끊길 수 있으므로, 구형 Linux 호스트를 업그레이드하고 대신 --device을 사용하세요.
1단계: YOLOv5 Docker 이미지 가져오기#
Ultralytics는 Docker Hub에서 공식 YOLOv5 이미지를 제공합니다. latest 태그는 가장 최근 저장소 커밋을 추적하므로 항상 최신 버전을 사용할 수 있습니다. 다음 명령으로 이미지를 가져오세요:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $t사용 가능한 모든 이미지는 Ultralytics YOLOv5 Docker Hub 저장소에서 확인할 수 있습니다.
2단계: Docker 컨테이너 실행#
이미지를 가져온 후 컨테이너로 실행할 수 있습니다.
CPU만 사용하기#
CPU만 사용하여 대화형 컨테이너 인스턴스를 실행하려면 -it 플래그를 사용합니다. --ipc=host 플래그를 사용하면 호스트 IPC 네임스페이스를 공유할 수 있으며, 이는 공유 메모리 액세스에 중요합니다.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tGPU 사용하기#
컨테이너에서 GPU 액세스를 활성화하려면 --device nvidia.com/gpu=... CDI 플래그를 사용합니다. NVIDIA Container Toolkit이 올바르게 설치되어 있어야 합니다.
# Run with access to all available GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 $t명령 옵션에 대한 자세한 내용은 Docker run 참조를 참조하세요.
로컬 디렉터리 마운트#
컨테이너 내부에서 로컬 파일(데이터셋, 모델 가중치 등)을 사용하려면 -v 플래그를 사용하여 호스트 디렉터리를 컨테이너에 마운트합니다:
# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container $t/path/on/host을 머신의 실제 경로로 바꾸고, /path/in/container을 Docker 컨테이너 내부에서 사용할 경로로 바꿉니다(예: /usr/src/datasets).
3단계: Docker 컨테이너에서 YOLOv5 🚀 사용하기#
이제 실행 중인 YOLOv5 Docker 컨테이너 내부에 있습니다! 여기에서 객체 감지와 같은 다양한 머신러닝 및 딥러닝 작업에 표준 YOLOv5 명령을 실행할 수 있습니다.
# Train a YOLOv5 model on your custom dataset (ensure data is mounted or downloaded)
python train.py --data your_dataset.yaml --weights yolov5s.pt --img 640 # Start training
# Validate the trained model's performance (Precision, Recall, mAP)
python val.py --weights path/to/your/best.pt --data your_dataset.yaml # Validate accuracy
# Run inference on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos # Perform detection
# Export the trained model to various formats like ONNX, CoreML, or TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite # Export model자세한 사용 방법은 사용자 지정 데이터 학습 및 모델 내보내기 튜토리얼을 참조하세요.
정밀도, 재현율, mAP 등의 평가 지표에 대해 자세히 알아보세요. ONNX, CoreML, TFLite 등의 내보내기 형식을 이해하고 다양한 모델 배포 옵션을 살펴보세요. 모델 가중치도 효과적으로 관리하세요.

Docker 컨테이너에서 YOLOv5를 성공적으로 설정하고 실행했습니다.
자주 묻는 질문#
PyTorch 데이터로더 워커는 공유 메모리를 통해 텐서를 공유하며, Docker의 기본값인 64 MB는 너무 작습니다.
--ipc=host은 호스트의 메모리 세그먼트를 공유합니다. 컨테이너를 격리된 상태로 유지하려면--shm-size=8g을 대안으로 사용할 수 있습니다.호스트에서
nvidia-smi을 실행하여 드라이버가 작동하는지 확인하고,nvidia-ctk cdi list로 NVIDIA Container Toolkit이 설치되었는지 확인합니다. 또한 Docker가 28.2 이상이어야--device nvidia.com/gpu=all를 사용할 수 있습니다.-v /path/on/host:/path/in/container을 사용해 호스트 디렉터리를 마운트하고,--data및--project가 마운트된 경로를 가리키도록 설정합니다. 컨테이너 내부에서 다른 위치에 기록한 파일은 컨테이너를 제거할 때 삭제됩니다.가능하지만 컨테이너에서 디스플레이 서버에 액세스할 수 있어야 합니다. Ultralytics Docker 가이드의 X11 및 Wayland 안내를 참조하세요. 디스플레이가 없으면
--save-txt또는 기본runs/detect/출력을 사용해 결과를 저장하세요.