Vai al contenuto

Guida rapida a Docker per Ultralytics

Ultralytics Pacchetto Docker Visuale

Questa guida è un'introduzione completa alla creazione di un ambiente Docker per i tuoi progetti Ultralytics . Docker è una piattaforma per sviluppare, spedire ed eseguire applicazioni in container. È particolarmente utile per garantire che il software venga eseguito sempre nello stesso modo, indipendentemente dal luogo in cui viene distribuito. Per maggiori dettagli, visita il repository Docker Ultralytics su Docker Hub.

Docker tira

Cosa imparerai

  • Impostazione di Docker con supporto NVIDIA
  • Installare le immagini Docker di Ultralytics
  • Eseguire Ultralytics in un contenitore Docker
  • Montare le directory locali nel contenitore

Prerequisiti

  • Assicurati che Docker sia installato sul tuo sistema. In caso contrario, puoi scaricarlo e installarlo dal sito web di Docker.
  • Assicurati che il tuo sistema abbia una GPU NVIDIA e che i driver NVIDIA siano installati.

Configurazione di Docker con il supporto di NVIDIA

Per prima cosa, verifica che i driver NVIDIA siano installati correttamente eseguendo:

nvidia-smi

Installazione di NVIDIA Docker Runtime

Ora installiamo il runtime NVIDIA Docker per abilitare il supporto delle GPU nei container 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

Verifica di NVIDIA Runtime con Docker

Corri docker info | grep -i runtime per garantire che nvidia appare nell'elenco dei runtime:

docker info | grep -i runtime

Installazione delle immagini Docker di Ultralytics

Ultralytics offre diverse immagini Docker ottimizzate per varie piattaforme e casi d'uso:

  • Profilo Docker: Immagine GPU, ideale per la formazione.
  • Dockerfile-arm64: Per l'architettura ARM64, adatto a dispositivi come Raspberry Pi.
  • Dockerfile-cpu: versione solo per CPU per l'inferenza e gli ambienti non-GPU.
  • Dockerfile-jetson: Ottimizzato per i dispositivi NVIDIA Jetson.
  • Dockerfile-python: Ambiente minimale Python per applicazioni leggere.
  • Dockerfile-conda: include il pacchetto Miniconda3 e Ultralytics installato tramite Conda.

Per prelevare l'ultima immagine:

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

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

Eseguire Ultralytics in un contenitore Docker

Ecco come eseguire il contenitore Docker Ultralytics :

# 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

Il -it assegna una pseudo-TTY e mantiene aperto lo stdin, permettendoti di interagire con il contenitore. Il flag --ipc=host consente di condividere lo spazio dei nomi IPC dell'host, essenziale per condividere la memoria tra i processi. Il flag --gpus permette al contenitore di accedere alle GPU dell'host.

Nota sull'accessibilità dei file

Per lavorare con i file sul tuo computer locale all'interno del container, puoi utilizzare i volumi Docker:

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

Sostituisci /path/on/host con il percorso della directory sul computer locale e /path/in/container con il percorso desiderato all'interno del contenitore Docker.


Congratulazioni! Ora sei configurato per utilizzare Ultralytics con Docker e sei pronto a sfruttare le sue potenti funzionalità. Per metodi di installazione alternativi, non esitare a consultare la documentazione di avvio rapido diUltralytics .



Creato 2023-11-12, Aggiornato 2023-11-16
Autori: glenn-jocher (2)

Commenti