Se sei nuovo in Docker e nei container, imparare a distribuire un’applicazione API Python Flask su Docker è un ottimo punto di partenza. Docker ti permette di containerizzare applicazioni con tecnologia leggera e sicurezza per una distribuzione rapida delle applicazioni.
In questo tutorial, imparerai a diventare il tuo padrone nell’impostare e distribuire applicazioni API Python Flask su contenitori Docker.
Preparati e inizia a distribuire!
Prerequisiti
Se desideri seguire passo dopo passo, avrai bisogno dell’installazione dei seguenti componenti:
- Macchina Ubuntu con Docker installato. Questo tutorial utilizza Ubuntu 18.04.5 LTS con Docker v19.03.8.
- Python v3.9 o successivo installato sulla macchina Ubuntu. Questo tutorial utilizzerà Python v3.9.2 su una macchina Ubuntu.
- Pacchetto Elinks installato sulla macchina Ubuntu utilizzato per testare l’API in questo tutorial.
Creazione di un’applicazione API Python Flask (API GET e POST)
Inizia questo tutorial creando un’applicazione Python Flask. Flask è un leggero framework di applicazioni web micro WSGI scritto in Python. Flask fornisce strumenti utili e funzionalità per la creazione di applicazioni web in Python.
Prima di creare un’applicazione Python Flask, installerai Python Flask e l’ambiente virtuale Python dove Flask eseguirà un’applicazione.
1. Accedi alla tua macchina Ubuntu utilizzando il tuo client SSH preferito.
2. Successivamente, esegui i seguenti comandi per creare una directory chiamata ~/docker_python_flask_demo e passa a quella. Questa directory conterrà tutti i file richiesti da Python e Docker per eseguire un’applicazione.
3. Esegui il comando pip
di seguito per installare
un ambiente virtuale Python (virtualenv
) necessario per Flask per eseguire le applicazioni. Un ambiente virtuale Python offre il proprio binario Python e pacchetti installati per applicazione per evitare conflitti con altre applicazioni.

4. Esegui il comando virtualenv
sottostante per creare e attivare un ambiente virtuale utilizzando il modulo venv
.

5. Ora, esegui il comando sottostante per installare il pacchetto Python flask
con il gestore di pacchetti pip
.
6. Esegui il seguente comando per attivare i pacchetti nel tuo ambiente virtuale prima di poter iniziare a installarli o utilizzarli. Questo modifica la variabile d’ambiente VIRTUAL_ENV
per puntare al tuo ambiente virtuale e premette il binario Python dell’ambiente virtuale al percorso in modo da eseguire il binario corretto.
7. Crea un altro file chiamato requirements.txt e definisci la dipendenza dell’applicazione Flask, come mostrato di seguito.
8. Crea un file di testo ~/docker_python_flask_demo/app.py e popolalo con il codice Python riportato di seguito.
Il codice Python sottostante importa la classe flask
di Python e crea un’istanza della classe chiamata app
. L’istanza della classe app
contiene due funzioni login()
eseguite quando gli utenti inviano richieste sulla pagina /login
.
La funzione success()
viene quindi eseguita, mostrando il messaggio di benvenuto “nome-dell’utente” sul browser.
9. Crea un altro file chiamato ~/docker_python_flask_demo/form.html e copia/incolla il codice qui sotto.
Eseguendo il codice HTML qui sotto si crea un modulo con due input; uno è per inserire il tuo nome e l’altro è un pulsante di invio.
Appena inserisci un nome utente e premi il pulsante di invio, viene inviata una richiesta post e Flask esegue un’altra funzione e apre una nuova pagina web su http://localhost:5000/success/<username>.
10. Infine, esegui il comando Python
qui sotto per verificare che l’applicazione (app.py
) funzioni localmente sul tuo sistema.
Come puoi vedere di seguito, l’applicazione è in esecuzione correttamente sulla macchina Ubuntu ma non su Docker. Avvierai la stessa applicazione su Docker nelle sezioni seguenti.

Creazione di un Dockerfile per Distribuire l’Applicazione API Python Flask
Hai appena creato e verificato che l’applicazione Python Flask funzioni localmente sulla tua macchina. Ma prima di distribuire l’applicazione su Docker, creerai prima un Dockerfile per definire tutti i set di istruzioni per la creazione dell’immagine Docker.
Crea un file chiamato Dockerfile nella directory ~/docker_python_flask_demo e copia/incolla il contenuto sottostante nel Dockerfile.
Docker utilizzerà questo Dockerfile per eseguire tutte le istruzioni o comandi necessari per creare una nuova immagine Docker sopra l’immagine di base (ubuntu:18.04
).
Ora, esegui il comando tree
di seguito per verificare che tutti i file necessari per eseguire l’applicazione Python Flask siano contenuti nella directory di lavoro (~/docker_python_flask_demo).

Creazione di un’immagine Docker per l’applicazione API Python Flask
Ora hai i file necessari per distribuire un’applicazione Python Flask, ma quei file non faranno nulla a meno che non crei un’immagine. Eseguirai il comando docker build
per creare un’immagine Docker basata sulle istruzioni che hai impostato nel Dockerfile.
Esegui il comando docker build
qui sotto per creare un’immagine Docker nella directory di lavoro (.
). Questo comando etichetta (-t
) l’immagine come flask-image
versione 1 (:v1
).

Ora, esegui il comando docker
qui sotto per elencare tutte le immagini disponibili.
In basso, puoi vedere vari attributi restituiti, come REPOSITORY. Nota che il nome del REPOSITORY è flask-image e ha un’etichetta con una versione (v1), come mostrato di seguito.

Esecuzione dell’applicazione Python Flask in un contenitore Docker
Dopo aver creato un’immagine Docker, puoi ora eseguire l’applicazione flash Python in un contenitore Docker. Un contenitore Docker raggruppa il codice e le sue dipendenze per eseguire rapidamente le applicazioni.
1. Esegui il comando docker run
qui sotto per eseguire le seguenti operazioni:
- Avvia il contenitore in modalità distaccata (
-d
), in modo che venga eseguito come processo in background e restituisca l’output della console alla creazione. - Mappa la porta host Docker (
-p 5000:5000
) con la porta del contenitore. - Avvia il contenitore Docker (
flask-image:v1
)
2. Successivamente, esegui il comando docker
di seguito per elencare tutti i contenitori nell’engine Docker. Verifica se Docker ha creato con successo il contenitore.

3. Infine, esegui il comando di seguito per aprire il tuo browser web nella macchina Ubuntu usando elinks.
Il comando apre il browser web nel terminale e chiede un nome, come mostrato di seguito.
Inserisci il tuo nome e premi il pulsante Invia.

4. Come puoi vedere di seguito, dopo aver premuto il pulsante Invia, la funzione di accesso si redireziona alla funzione di successo nell’applicazione Flask.

Conclusione
Questo tutorial mirava ad aiutarti nel processo di configurazione di un contenitore Docker API Python Flask utilizzando immagini Docker. Hai anche toccato come avviare contenitori Python Flask utilizzando i Dockerfile, il che ti consente di modificare e creare contenitori personalizzati a tua scelta.
Quale altre applicazioni hai in mente di distribuire su un contenitore Docker? Forse un contenitore Docker MongoDB?