Sintonizzati su YOLO Vision 2025!
25 settembre 2025
10:00 — 18:00 BST
Evento ibrido
Yolo Vision 2024
Glossario

Docker

Semplifica i flussi di lavoro AI/ML con Docker! Scopri come distribuire modelli, garantire la riproducibilità ed effettuare lo scaling in modo efficiente tra diversi ambienti.

Docker è una piattaforma open-source che automatizza la distribuzione, il ridimensionamento e la gestione delle applicazioni utilizzando la virtualizzazione a livello di sistema operativo per fornire software in pacchetti chiamati container. Per gli ingegneri di Machine Learning (ML) e i data scientist, Docker è uno strumento cruciale che risolve il problema comune delle incongruenze ambientali, il famigerato problema del "sul mio computer funziona". Raggruppando il codice di un'applicazione con tutte le librerie, i framework come PyTorch e altre dipendenze necessarie per l'esecuzione, Docker garantisce che un modello funzioni in modo identico indipendentemente da dove venga distribuito. Questa coerenza è fondamentale per una distribuzione del modello affidabile ed è una pietra angolare delle moderne pratiche di MLOps. Ultralytics fornisce una guida rapida a Docker per aiutare gli utenti a iniziare a containerizzare le proprie applicazioni.

Come funziona Docker

Il flusso di lavoro di Docker ruota attorno ad alcuni componenti fondamentali che lavorano insieme per impacchettare ed eseguire le applicazioni:

  • Dockerfile: Questo è un semplice file di testo che contiene un elenco di comandi o istruzioni sequenziali. Queste istruzioni indicano a Docker come costruire una specifica immagine Docker. Per un progetto ML, un Dockerfile specificherebbe un sistema operativo di base, comandi per installare dipendenze come Python e OpenCV, copiare i file del modello e il codice di inferenza e definire il comando da eseguire all'avvio del container. Puoi trovare maggiori informazioni sui Dockerfile nella documentazione ufficiale di Docker.
  • Docker Image: Un'immagine è un pacchetto leggero, autonomo ed eseguibile che include tutto il necessario per eseguire un software, incluso il codice, un runtime, librerie, variabili d'ambiente e file di configurazione. È un modello di sola lettura creato da un Dockerfile. Le immagini specifiche per ML sono spesso disponibili su registri come NVIDIA NGC, che sono preconfigurate con driver GPU e framework ML.
  • Docker Container: Un container è un'istanza eseguibile di un'immagine Docker. Quando si esegue un'immagine, questa diventa un container, che è un processo isolato in esecuzione sul kernel della macchina host. Più container possono essere eseguiti sulla stessa macchina e condividere il kernel del sistema operativo con altri container, ognuno dei quali viene eseguito come processo isolato nello spazio utente. Questo li rende estremamente efficienti rispetto alla virtualizzazione tradizionale. La tecnologia è standardizzata da organizzazioni come la Open Container Initiative (OCI).

Applicazioni AI/ML nel Mondo Reale

Docker semplifica l'intero ciclo di vita di un modello di IA, dalla sperimentazione alla produzione.

  1. Distribuzione di modelli di computer vision sull'Edge: Un modello Ultralytics YOLO11 addestrato per l'object detection può essere impacchettato in un container Docker. Questo container include i pesi del modello, lo script di inferenza e tutte le dipendenze necessarie come versioni specifiche della libreria CUDA. Questo singolo container può quindi essere distribuito in modo coerente su varie piattaforme, da una potente GPU cloud a un dispositivo Edge AI con risorse limitate come un NVIDIA Jetson. Ciò garantisce che il modello funzioni come previsto, un requisito fondamentale per l'inferenza in tempo reale in applicazioni come la videosorveglianza intelligente.
  2. Creazione di ambienti di ricerca riproducibili: Un data scientist che sviluppa un nuovo algoritmo per la segmentazione delle immagini può creare un container Docker che blocca versioni specifiche di Python, TensorFlow e altre librerie. Questo ambiente containerizzato può essere condiviso con i collaboratori o pubblicato insieme a un articolo di ricerca, consentendo ad altri di replicare perfettamente l'ambiente di addestramento e verificare i risultati. Piattaforme come Ultralytics HUB si integrano con le tecnologie container per semplificare ulteriormente questo processo.

Confronto con termini simili

Sebbene Docker sia fondamentale per la containerizzazione, viene spesso utilizzato insieme ad altre tecnologie:

  • Containerizzazione: Questo è il concetto generale di confezionamento del software in container. Docker è la piattaforma più popolare per la containerizzazione, fornendo gli strumenti per costruire, spedire ed eseguire container.
  • Kubernetes: Mentre Docker gestisce singoli container su un singolo host, Kubernetes è una piattaforma di orchestrazione di container. Automatizza la distribuzione, il ridimensionamento e la gestione di applicazioni containerizzate su cluster di macchine. Pensa a Docker come alla creazione dei container di spedizione e a Kubernetes come al sistema che gestisce le navi e i porti. Puoi saperne di più sul sito web ufficiale di Kubernetes.
  • Macchine virtuali (VM): Le VM forniscono isolamento emulando interi sistemi hardware, incluso un sistema operativo guest. I container, gestiti da Docker, virtualizzano il sistema operativo, condividendo il kernel dell'host. Questo rende i container molto più leggeri, veloci ed efficienti in termini di risorse rispetto alle VM, anche se le VM offrono un isolamento più forte. Il sito web ufficiale di Docker fornisce un ottimo confronto.

Sfruttando Docker, i professionisti dell'IA e della Computer Vision (CV) possono migliorare significativamente l'efficienza del flusso di lavoro, la collaborazione e l'affidabilità dei modelli distribuiti. Per una panoramica generale dello scopo di Docker, risorse come la spiegazione di Docker di OpenSource.com offrono introduzioni accessibili. Questa tecnologia è un fattore chiave per un'ampia gamma di opzioni di implementazione dei modelli.

Unisciti alla community di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora
Link copiato negli appunti