Creare un’Immagine Docker per un Servizio Python: Guida Passo-Passo
Docker è diventato uno strumento essenziale per lo sviluppo e la distribuzione di applicazioni, grazie alla sua capacità di isolare le applicazioni e le loro dipendenze in container leggeri e portabili. In questo articolo, esploreremo come creare un’immagine Docker per un semplice servizio Python utilizzando Flask. Seguiremo un approccio passo-passo, illustrando ogni fase del processo.
Prerequisiti
Prima di iniziare, assicurati di avere Docker installato sulla tua macchina. Puoi scaricare Docker Desktop dal sito ufficiale di Docker qui.
Passo 1: Creare il Progetto Python
Per prima cosa, creiamo una semplice applicazione Python. Useremo Flask, un microframework per Python, per creare un semplice servizio web. Creiamo un file chiamato app.py.
app.py
from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Hello, Docker!" if __name__ == '__main__': app.run(host='0.0.0.0')
Questo semplice servizio restituisce la stringa “Hello, Docker!” quando accediamo alla radice del server.
Passo 2: Creare il File requirements.txt
Il file requirements.txt elenca tutte le dipendenze del progetto. Creiamo questo file e aggiungiamo Flask come dipendenza.
requirements.txt
Flask==2.0.1
Passo 3: Creare il Dockerfile
Il Dockerfile è un file di testo che contiene tutte le istruzioni per costruire l’immagine Docker. Creiamo un file chiamato Dockerfile e aggiungiamo il seguente contenuto:
Dockerfile
# Usa un'immagine base di Python FROM python:3.9-slim # Imposta la directory di lavoro nel container WORKDIR /app # Copia il file requirements.txt nella directory di lavoro COPY requirements.txt . # Installa le dipendenze RUN pip install --no-cache-dir -r requirements.txt # Copia il resto del codice dell'applicazione COPY . . # Espone la porta su cui l'applicazione gira EXPOSE 5000 # Definisce il comando per avviare l'applicazione CMD ["python", "app.py"]
Passo 4: Costruire l’Immagine Docker
Ora che abbiamo il nostro Dockerfile, possiamo costruire l’immagine Docker. Apri un terminale, naviga nella directory dove si trovano i tuoi file (app.py, requirements.txt, Dockerfile) e esegui il seguente comando:
docker build -t my-python-app .
Questo comando legge le istruzioni nel Dockerfile e costruisce un’immagine Docker chiamata my-python-app.
Passo 5: Eseguire il Container Docker
Una volta costruita l’immagine, possiamo eseguire un container basato su quell’immagine con il comando:
docker run -p 5000:5000 my-python-app
Questo comando esegue il container e mappa la porta 5000 del tuo host alla porta 5000 del container, permettendoti di accedere al servizio web all’indirizzo http://localhost:5000.
Docker è uno strumento potente che può semplificare notevolmente lo sviluppo e la distribuzione delle tue applicazioni. Spero che questa guida ti sia stata utile e ti invito a esplorare ulteriormente le potenzialità di Docker nel tuo prossimo progetto.
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.
Comments