콘텐츠로 건너뛰기

Ultralytics용 Docker 퀵스타트 가이드

Ultralytics Docker 패키지 시각 자료

이 가이드는 Ultralytics 프로젝트를 위한 Docker 환경 설정에 대한 포괄적인 소개 역할을 합니다. Docker는 컨테이너에서 애플리케이션을 개발, 배송 및 실행하기 위한 플랫폼입니다. 특히 소프트웨어가 배포 위치에 관계없이 항상 동일하게 실행되도록 보장하는 데 유용합니다. 자세한 내용은 Docker Hub의 Ultralytics Docker 저장소를 참조하십시오.

Docker 이미지 버전 Docker Pulls

학습 내용

  • NVIDIA 지원으로 Docker 설정
  • Ultralytics Docker 이미지 설치
  • CPU 또는 GPU 지원을 통해 Docker 컨테이너에서 Ultralytics 실행
  • Ultralytics 감지 결과를 표시하기 위해 Docker와 함께 디스플레이 서버 사용
  • 컨테이너에 로컬 디렉토리 마운트



참고: Docker 시작하기 | Docker 내부의 Ultralytics python 패키지 사용법 라이브 데모 🎉


필수 조건

  • 시스템에 Docker가 설치되어 있는지 확인하십시오. 그렇지 않은 경우 Docker 웹사이트에서 다운로드하여 설치할 수 있습니다.
  • 시스템에 NVIDIA GPU가 있고 NVIDIA 드라이버가 설치되어 있는지 확인하십시오.

NVIDIA 지원으로 Docker 설정

먼저 다음을 실행하여 NVIDIA 드라이버가 올바르게 설치되었는지 확인합니다.

nvidia-smi

NVIDIA Docker 런타임 설치

이제 NVIDIA Docker 런타임을 설치하여 Docker 컨테이너에서 GPU 지원을 활성화해 보겠습니다.

# Add NVIDIA package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(lsb_release -cs)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# Install NVIDIA Docker runtime
sudo apt-get update
sudo apt-get install -y nvidia-docker2

# Restart Docker service to apply changes
sudo systemctl restart docker

Docker로 NVIDIA 런타임 확인

실행 docker info | grep -i runtime 다음을 확인하려면 nvidia 실행 시간 목록에 나타나는지 확인합니다.

docker info | grep -i runtime

Ultralytics Docker 이미지 설치

Ultralytics는 다양한 플랫폼과 사용 사례에 최적화된 여러 Docker 이미지를 제공합니다.

  • Dockerfile: 훈련에 이상적인 GPU 이미지입니다.
  • Dockerfile-arm64: ARM64 아키텍처용으로 Raspberry Pi와 같은 장치에 적합합니다.
  • Dockerfile-cpu: 추론 및 비-GPU 환경을 위한 CPU 전용 버전입니다.
  • Dockerfile-jetson-jetpack4: NVIDIA Jetson 장치에서 NVIDIA JetPack 4를 실행하도록 최적화되었습니다.
  • Dockerfile-jetson-jetpack5: NVIDIA Jetson 장치에서 NVIDIA JetPack 5를 실행하도록 최적화되었습니다.
  • Dockerfile-jetson-jetpack6: NVIDIA Jetson 장치에서 NVIDIA JetPack 6를 실행하도록 최적화되었습니다.
  • Dockerfile-jupyter: 브라우저에서 JupyterLab을 사용하여 대화형으로 개발합니다.
  • Dockerfile-python: 경량 애플리케이션을 위한 최소 python 환경입니다.
  • Dockerfile-conda: Miniconda3 및 Conda를 통해 설치된 Ultralytics 패키지를 포함합니다.

최신 이미지를 가져오려면:

# Set image name as a variable
t=ultralytics/ultralytics:latest

# Pull the latest Ultralytics image from Docker Hub
sudo docker pull $t

Docker 컨테이너에서 Ultralytics 실행하기

Ultralytics Docker 컨테이너를 실행하는 방법은 다음과 같습니다.

CPU만 사용

# Run without GPU
sudo docker run -it --ipc=host $t

GPU 사용

# Run with all GPUs
sudo docker run -it --ipc=host --gpus all $t

# Run specifying which GPUs to use
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t

에 지정되어 있습니다. -it 플래그는 pseudo-TTY를 할당하고 stdin을 열어 컨테이너와 상호 작용할 수 있도록 합니다. --ipc=host 플래그는 프로세스 간에 메모리 공유에 필수적인 호스트의 IPC 네임스페이스 공유를 활성화합니다. --gpus 플래그를 사용하면 컨테이너가 호스트의 GPU에 액세스할 수 있습니다.

파일 접근성 관련 참고 사항

컨테이너 내에서 로컬 시스템의 파일로 작업하려면 Docker 볼륨을 사용할 수 있습니다.

# Mount a local directory into the container
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t

다음을 대체하십시오. /path/on/host 로컬 시스템의 디렉터리 경로와 /path/in/container Docker 컨테이너 내부의 원하는 경로로 바꿉니다.

Docker 컨테이너에서 GUI(Graphical User Interface) 애플리케이션 실행

고도의 실험적 기능 - 사용자 책임 하에 사용

다음 지침은 실험적인 내용입니다. X11 소켓을 Docker 컨테이너와 공유하면 잠재적인 보안 위험이 발생할 수 있습니다. 따라서 통제된 환경에서만 이 솔루션을 테스트하는 것이 좋습니다. 자세한 내용은 다음 자료에서 사용하는 방법을 참조하십시오. xhost(1)(2).

Docker는 주로 백그라운드 애플리케이션 및 CLI 프로그램을 컨테이너화하는 데 사용되지만 그래픽 프로그램도 실행할 수 있습니다. Linux 환경에서는 두 개의 주요 그래픽 서버가 그래픽 디스플레이를 처리합니다. X11(X Window System이라고도 함) 및 Wayland. 시작하기 전에 현재 사용 중인 그래픽 서버를 확인하는 것이 중요합니다. 다음 명령을 실행하여 확인하십시오.

env | grep -E -i 'x11|xorg|wayland'

X11 또는 Wayland 디스플레이 서버의 설정 및 구성은 이 가이드의 범위를 벗어납니다. 위의 명령이 아무것도 반환하지 않으면 계속하기 전에 시스템에서 작동하도록 설정해야 합니다.

GUI로 Docker 컨테이너 실행하기

예시

GPU 사용
If you're using [GPUs](#using-gpus), you can add the `--gpus all` flag to the command.

X11을 사용하는 경우, 다음 명령어를 실행하여 Docker 컨테이너가 X11 소켓에 접근하도록 허용할 수 있습니다:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v ~/.Xauthority:/root/.Xauthority \
  -it --ipc=host $t

이 명령어는 다음을 설정합니다. DISPLAY 환경 변수를 호스트의 디스플레이로 설정하고, X11 소켓을 마운트하며, .Xauthority 파일을 컨테이너에 매핑합니다. 이 xhost +local:docker 명령어를 통해 Docker 컨테이너가 X11 서버에 접근할 수 있습니다.

Wayland의 경우, 다음 명령어를 사용하세요:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
  --net=host -it --ipc=host $t

이 명령어는 다음을 설정합니다. DISPLAY 환경 변수를 호스트의 디스플레이로 설정하고, Wayland 소켓을 마운트하여 Docker 컨테이너가 Wayland 서버에 접근하도록 허용합니다.

GUI와 함께 Docker 사용하기

이제 Docker 컨테이너 내부에서 그래픽 애플리케이션을 표시할 수 있습니다. 예를 들어, 다음 CLI 명령어를 실행하여 YOLO11 모델예측을 시각화할 수 있습니다:

yolo predict model=yolo11n.pt show=True
테스트

Docker 그룹이 X11 서버에 접근할 수 있는지 확인하는 간단한 방법은 GUI 프로그램(예: )이 있는 컨테이너를 실행하는 것입니다. xclock 또는 xeyes. 또는 Ultralytics Docker 컨테이너에 이러한 프로그램을 설치하여 GNU-Linux 디스플레이 서버의 X11 서버에 대한 접근을 테스트할 수도 있습니다. 문제가 발생하면 환경 변수 -e QT_DEBUG_PLUGINS=1를 설정하는 것을 고려해 보세요. 이 환경 변수를 설정하면 디버깅 정보 출력이 활성화되어 문제 해결에 도움이 됩니다.

Docker GUI 작업 완료 시

접근 권한 취소

두 경우 모두, 작업이 완료되면 Docker 그룹의 접근 권한을 취소하는 것을 잊지 마세요.

xhost -local:docker
터미널에서 직접 이미지 결과를 보고 싶으신가요?

터미널을 사용하여 이미지 결과를 보는 방법에 대한 다음 가이드를 참조하세요.


축하합니다! 이제 Docker를 통해 Ultralytics를 사용할 수 있도록 설정되었으며 강력한 기능을 활용할 준비가 되었습니다. 다른 설치 방법은 Ultralytics 퀵스타트 문서를 참조하십시오.

FAQ

Docker를 사용하여 Ultralytics를 설정하는 방법은 무엇입니까?

Docker를 통해 Ultralytics를 설정하려면 먼저 Docker가 시스템에 설치되어 있는지 확인하십시오. NVIDIA GPU가 있는 경우 NVIDIA Docker 런타임을 설치하여 GPU 지원을 활성화하십시오. 그런 다음 다음 명령어를 사용하여 Docker Hub에서 최신 Ultralytics Docker 이미지를 가져옵니다.

sudo docker pull ultralytics/ultralytics:latest

자세한 단계는 Docker 퀵스타트 가이드를 참조하십시오.

머신 러닝 프로젝트에 Ultralytics Docker 이미지를 사용하면 어떤 이점이 있습니까?

Ultralytics Docker 이미지를 사용하면 서로 다른 시스템에서 일관된 환경을 보장하여 동일한 소프트웨어와 종속성을 복제할 수 있습니다. 이는 특히 다음과 같은 경우에 유용합니다. 팀 간 협업, 다양한 하드웨어에서 모델을 실행하고 재현성을 유지합니다. GPU 기반 학습을 위해 Ultralytics는 다음과 같은 최적화된 Docker 이미지를 제공합니다. Dockerfile 일반적인 GPU 사용을 위해, Dockerfile-jetson NVIDIA Jetson 장치를 위해 제공합니다. 자세한 내용은 Ultralytics Docker Hub 를 참조하세요.

GPU 지원을 통해 Docker 컨테이너에서 Ultralytics YOLO를 실행하려면 어떻게 해야 합니까?

먼저 NVIDIA Docker 런타임이 설치 및 구성되었는지 확인하십시오. 그런 다음 다음 명령을 사용하여 GPU 지원으로 Ultralytics YOLO를 실행합니다.

sudo docker run -it --ipc=host --gpus all ultralytics/ultralytics:latest

이 명령은 GPU 액세스 권한으로 Docker 컨테이너를 설정합니다. 자세한 내용은 Docker 빠른 시작 가이드를 참조하십시오.

디스플레이 서버가 있는 Docker 컨테이너에서 YOLO 예측 결과를 시각화하려면 어떻게 해야 합니까?

Docker 컨테이너에서 GUI를 사용하여 YOLO 예측 결과를 시각화하려면 Docker가 디스플레이 서버에 액세스하도록 허용해야 합니다. X11을 실행하는 시스템의 경우 명령은 다음과 같습니다.

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v ~/.Xauthority:/root/.Xauthority \
  -it --ipc=host ultralytics/ultralytics:latest

Wayland를 실행하는 시스템의 경우 다음을 사용하십시오.

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
  --net=host -it --ipc=host ultralytics/ultralytics:latest

자세한 내용은 Docker 컨테이너에서 그래픽 사용자 인터페이스(GUI) 애플리케이션 실행 섹션에서 확인할 수 있습니다.

Ultralytics Docker 컨테이너에 로컬 디렉토리를 마운트할 수 있습니까?

예, 다음을 사용하여 로컬 디렉토리를 Ultralytics Docker 컨테이너에 마운트할 수 있습니다. -v 플래그:

sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest

다음을 대체하십시오. /path/on/host 로컬 시스템의 디렉토리와 /path/in/container 컨테이너 내부의 원하는 경로를 사용합니다. 이 설정을 통해 컨테이너 내에서 로컬 파일을 사용하여 작업할 수 있습니다. 자세한 내용은 다음을 참조하십시오. 파일 접근성 관련 참고 사항 섹션에서 확인할 수 있습니다.



📅 1년 전에 생성됨 ✏️ 4개월 전에 업데이트됨

댓글