콘텐츠로 건너뛰기

Docker 빠른 시작 가이드 Ultralytics

Ultralytics 도커 패키지 비주얼

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

도커 이미지 버전 도커 풀

학습 내용

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

전제 조건

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

NVIDIA 지원으로 Docker 설정하기

먼저 NVIDIA 드라이버를 실행하여 드라이버가 제대로 설치되었는지 확인합니다:

nvidia-smi

NVIDIA 도커 런타임 설치

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

# 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 도커 이미지 설치

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

  • 도커파일: GPU 이미지, 교육에 이상적입니다.
  • 도커파일-arm64: ARM64 아키텍처의 경우, 라즈베리 파이와 같은 장치에 적합합니다.
  • 도커파일-cpu: CPU-추론 및GPU 환경이 아닌 전용 버전입니다.
  • 도커파일-젯슨-젯팩4: NVIDIA 젯팩 4를 실행하는 NVIDIA 젯슨 장치에 최적화되어 있습니다.
  • 도커파일-젯슨-젯팩5: NVIDIA 젯팩 5를 실행하는 NVIDIA 젯슨 장치에 최적화되어 있습니다.
  • 도커파일-젯슨-젯팩6: NVIDIA 젯팩 6을 실행하는 NVIDIA 젯슨 장치에 최적화되어 있습니다.
  • 도커파일-주피터: 브라우저에서 JupyterLab을 사용하여 대화형 개발을 위한 파일입니다.
  • 도커파일-python: 경량 애플리케이션을 위한 최소한의 Python 환경.
  • 도커파일-콘다: 콘다를 통해 설치된 미니콘다3 및 Ultralytics 패키지를 포함합니다.

최신 이미지를 가져오려면

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

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

도커 컨테이너에서 Ultralytics 실행

Ultralytics 도커 컨테이너를 실행하는 방법은 다음과 같습니다:

만 사용하여 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 플래그는 의사 TTY를 할당하고 stdin을 열어두어 컨테이너와 상호 작용할 수 있도록 합니다. 컨테이너의 --ipc=host 플래그를 사용하면 프로세스 간 메모리 공유에 필수적인 호스트의 IPC 네임스페이스를 공유할 수 있습니다. 그리고 --gpus 플래그를 사용하면 컨테이너가 호스트의 GPU에 액세스할 수 있습니다.

도커 컨테이너에서 Ultralytics 실행

Ultralytics 도커 컨테이너를 실행하는 방법은 다음과 같습니다:

만 사용하여 CPU

# Run with all GPUs
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 플래그는 의사 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) 애플리케이션 실행하기

매우 실험적 - 사용자가 모든 위험 부담

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

Docker는 주로 백그라운드 애플리케이션과 CLI 프로그램을 컨테이너화하는 데 사용되지만 그래픽 프로그램도 실행할 수 있습니다. Linux 세계에서는 두 가지 주요 그래픽 서버가 그래픽 디스플레이를 처리합니다: X11 (X Window 시스템이라고도 함)과 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 도커 컨테이너에 이러한 프로그램을 설치하여 GNU-Linux 디스플레이 서버의 X11 서버에 대한 액세스를 테스트할 수도 있습니다. 문제가 발생하면 환경 변수를 다음과 같이 설정해 보세요. -e QT_DEBUG_PLUGINS=1. 이 환경 변수를 설정하면 디버깅 정보를 출력할 수 있어 문제 해결 프로세스에 도움이 됩니다.

Docker GUI를 완료하면

액세스 권한 취소

두 경우 모두 작업이 끝나면 Docker 그룹에서 액세스 권한을 취소하는 것을 잊지 마세요.

xhost -local:docker
터미널에서 이미지 결과를 바로 확인하고 싶으신가요?

단말기를 사용하여 이미지 결과를 보는 방법은 다음 가이드를 참조하세요.


축하합니다! 이제 Docker에서 Ultralytics 을 사용할 수 있도록 설정되었으며 강력한 기능을 활용할 준비가 되었습니다. 다른 설치 방법을 알아보려면 Ultralytics 빠른 시작 문서를 참조하세요.

자주 묻는 질문

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 도커 허브 에서 자세한 내용을 확인하세요.

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 도커 컨테이너에 마운트할 수 있습니다. -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 년 전 생성됨 ✏️ 1 일 전 업데이트됨

댓글