Creazione di un’immagine Docker semplice per la scienza dei dati
Immagine Docker per la scienza dei dati
Perché Docker per la Data Science?
Come data scientist, avere un ambiente standardizzato e portabile per l’analisi e la modellazione è fondamentale. Docker offre un ottimo modo per creare ambienti di data science riutilizzabili e condivisibili. In questo articolo, vedremo i passaggi per configurare un ambiente di data science di base utilizzando Docker.
- L’IA non dovrebbe sprecare tempo a reinventare ETL
- 10 Cose Interessanti Che Puoi Fare Con gli Embeddings! [Parte 1]
- I ricercatori di ATLAS esplorano nuovi fenomeni con la rilevazione di anomalie tramite apprendimento automatico non supervisionato
Perché dovremmo considerare l’uso di Docker? Docker consente ai data scientist di creare ambienti isolati e riproducibili per il proprio lavoro. Alcuni dei vantaggi chiave dell’utilizzo di Docker includono:
- Consistenza – Lo stesso ambiente può essere replicato su diverse macchine. Non ci sono più problemi del tipo “funziona sul mio computer”.
- Portabilità – Gli ambienti Docker possono essere facilmente condivisi e distribuiti su piattaforme multiple.
- Isolamento – I container isolano le dipendenze e le librerie necessarie per diversi progetti. Non ci sono più conflitti!
- Scalabilità – È facile scalare un’applicazione creata all’interno di Docker avviando più container.
- Collaborazione – Docker consente la collaborazione consentendo ai team di condividere ambienti di sviluppo.
Passaggio 1: Creazione di un Dockerfile
Il punto di partenza per qualsiasi ambiente Docker è il Dockerfile. Questo file di testo contiene le istruzioni per la creazione dell’immagine Docker.
Creiamo un Dockerfile di base per un ambiente di data science Python e salviamolo come ‘Dockerfile’ senza estensione.
# Utilizza l'immagine Python ufficiale
FROM python:3.9-slim-buster
# Imposta la variabile di ambiente
ENV PYTHONUNBUFFERED 1
# Installa le librerie Python
RUN pip install numpy pandas matplotlib scikit-learn jupyter
# Esegui Jupyter di default
CMD ["jupyter", "lab", "--ip='0.0.0.0'", "--allow-root"]
Questo Dockerfile utilizza l’immagine Python ufficiale e installa alcune popolari librerie di data science al suo interno. L’ultima riga definisce il comando predefinito per eseguire Jupyter Lab quando viene avviato un container.
Passaggio 2: Creazione dell’immagine Docker
Ora possiamo creare l’immagine utilizzando il comando docker build
:
docker build -t ds-python .
Ciò creerà un’immagine denominata ds-python
basata sul nostro Dockerfile.
La creazione dell’immagine potrebbe richiedere alcuni minuti poiché vengono installate tutte le dipendenze. Una volta completato, possiamo visualizzare le immagini Docker locali utilizzando docker images
.
Passaggio 3: Esecuzione di un container
Con l’immagine creata, possiamo ora avviare un container:
docker run -p 8888:8888 ds-python
Questo avvierà un’istanza di Jupyter Lab e mappera la porta 8888 dell’host alla porta 8888 del container.
Ora possiamo navigare su localhost:8888
in un browser per accedere a Jupyter e iniziare ad eseguire i notebook!
Passaggio 4: Condivisione e distribuzione dell’immagine
Un vantaggio chiave di Docker è la possibilità di condividere e distribuire immagini in ambienti diversi.
Per salvare un’immagine in un archivio tar, eseguire:
docker save -o ds-python.tar ds-python
Questa archiviazione tar può quindi essere caricata su qualsiasi altro sistema con Docker installato tramite:
docker load -i ds-python.tar
Possiamo anche caricare le immagini in un registro Docker come Docker Hub per condividerle pubblicamente o privatamente all’interno di un’organizzazione.
Per caricare l’immagine su Docker Hub:
- Crea un account Docker Hub se non ne hai già uno
- Esegui l’accesso a Docker Hub dalla riga di comando utilizzando
docker login
- Tagga l’immagine con il tuo nome utente Docker Hub:
docker tag ds-python tuonomeutente/ds-python
- Carica l’immagine:
docker push tuonomeutente/ds-python
L’immagine ds-python
è ora ospitata su Docker Hub. Gli altri utenti possono scaricare l’immagine eseguendo:
docker pull yourusername/ds-python
Per i repository privati, è possibile creare un’organizzazione e aggiungere utenti. Ciò consente di condividere immagini Docker in modo sicuro all’interno dei team.
Passaggio 5: Caricamento ed Esecuzione dell’Immagine
Per caricare ed eseguire l’immagine Docker su un altro sistema:
- Copia il file
ds-python.tar
sul nuovo sistema - Carica l’immagine utilizzando
docker load -i ds-python.tar
- Avvia un contenitore utilizzando
docker run -p 8888:8888 ds-python
- Accedi a Jupyter Lab su
localhost:8888
È tutto! L’immagine ds-python è ora pronta per essere utilizzata sul nuovo sistema.
Considerazioni Finali
Questo ti offre una breve introduzione su come configurare un ambiente di data science riproducibile con Docker. Alcune pratiche consigliate aggiuntive da considerare:
- Utilizza immagini di base più piccole come Python slim per ottimizzare le dimensioni dell’immagine
- Sfrutta i volumi di Docker per la persistenza e la condivisione dei dati
- Segui i principi di sicurezza come evitare di eseguire i contenitori come root
- Utilizza Docker Compose per definire ed eseguire applicazioni multi-contenitore
Spero che tu trovi questa introduzione utile. Docker offre infinite possibilità per ottimizzare e scalare i flussi di lavoro di data science.
Matthew Mayo (@mattmayo13) è un Data Scientist e l’Editore-in-Chef di VoAGI, la risorsa online di riferimento per Data Science e Machine Learning. I suoi interessi si concentrano nell’elaborazione del linguaggio naturale, nel design e nell’ottimizzazione degli algoritmi, nell’apprendimento non supervisionato, nelle reti neurali e negli approcci automatizzati all’apprendimento automatico. Matthew possiede una laurea magistrale in informatica e un diploma di specializzazione in data mining. È possibile contattarlo all’indirizzo editor1 at VoAGI[dot]com.