Si vous êtes nouveau dans Docker et les conteneurs, apprendre à déployer une application API Python Flask sur Docker est un excellent moyen de commencer. Docker vous permet de conteneuriser des applications avec une technologie légère et sécurisée pour un déploiement rapide des applications.
Dans ce tutoriel, vous apprendrez à devenir votre propre maître dans la configuration et le déploiement d’applications API Python Flask sur des conteneurs Docker.
Préparez-vous et commencez le déploiement!
Prérequis
Si vous souhaitez suivre étape par étape, vous aurez besoin des éléments suivants installés:
- Machine Ubuntu avec Docker installé. Ce tutoriel utilise Ubuntu 18.04.5 LTS avec Docker v19.03.8.
- Python v3.9 ou ultérieur installé sur la machine Ubuntu. Ce tutoriel utilisera Python v3.9.2 sur une machine Ubuntu.
- Le package Elinks installé sur la machine Ubuntu utilisée pour tester l’API dans ce tutoriel.
Création d’une application API Python Flask (API GET et POST)
Démarrez ce tutoriel en créant une application Python Flask. Flask est un framework d’application web micro WSGI léger écrit en Python. Flask offre des outils pratiques et des fonctionnalités pour créer des applications web en Python.
Avant de créer une application Python Flask, vous installerez un environnement virtuel Python Flask dans lequel Flask exécutera l’application.
1. Connectez-vous à votre machine Ubuntu à l’aide de votre client SSH préféré.
2. Ensuite, exécutez les commandes suivantes pour créer un répertoire nommé ~/docker_python_flask_demo et basculez vers celui-ci. Ce répertoire contiendra tous les fichiers requis par Python et Docker pour exécuter une application.
3. Exécutez la commande pip
ci-dessous pour installer
un environnement virtuel Python (virtualenv
) nécessaire à Flask pour exécuter les applications. Un environnement virtuel Python offre son propre binaire Python et des packages installés par application pour éviter les conflits avec d’autres applications.

4. Exécutez la commande virtualenv
ci-dessous pour créer et activer un environnement virtuel en utilisant le module venv
.

5. Maintenant, exécutez la commande ci-dessous pour installer le package Python flask
avec le gestionnaire de packages pip
.
6. Exécutez la commande suivante pour activer les packages dans votre environnement virtuel avant de pouvoir les installer ou les utiliser. Cela modifie la variable d’environnement VIRTUAL_ENV
pour pointer vers votre environnement virtuel et préfixe le binaire Python de l’environnement virtuel au chemin afin que vous exécutiez le binaire correct.
7. Créez un autre fichier, nommé requirements.txt, et définissez la dépendance de l’application Flask, comme indiqué ci-dessous.
8. Créez un fichier texte ~/docker_python_flask_demo/app.py et remplissez le fichier avec le code Python ci-dessous.
Le code Python ci-dessous importe la classe Python flask
et crée une instance de classe nommée app
. L’instance de classe app
contient deux fonctions login()
exécutées lorsque les utilisateurs envoient des requêtes sur la page /login
.
La fonction success()
s’exécute ensuite, affichant le message de bienvenue « nom-de-l’utilisateur » sur le navigateur.
9. Créez un autre fichier nommé ~/docker_python_flask_demo/form.html et copiez/collez le code ci-dessous.
L’exécution du code HTML ci-dessous crée un formulaire avec deux entrées ; l’une est du texte pour fournir votre nom, et l’autre est un bouton de soumission.
Dès que vous fournissez un nom d’utilisateur et appuyez sur le bouton de soumission, une demande POST est envoyée et Flask exécute une autre fonction et ouvre une nouvelle page web sur http://localhost:5000/success/<username>.
10. Enfin, exécutez la commande Python
ci-dessous pour vérifier que l’application (app.py
) fonctionne localement sur votre système.
Comme vous pouvez le voir ci-dessous, l’application fonctionne avec succès sur la machine Ubuntu mais pas sur Docker. Vous lancerez la même application sur Docker dans les sections suivantes.

Création d’un Dockerfile pour déployer l’application API Python Flask
Vous venez de créer et de vérifier que l’application Python Flask fonctionne localement sur votre machine. Mais avant de déployer l’application sur Docker, vous allez d’abord créer un Dockerfile pour définir tous les ensembles d’instructions pour construire l’image Docker.
Créez un fichier nommé Dockerfile dans le répertoire ~/docker_python_flask_demo, et copiez/collez le contenu ci-dessous dans le Dockerfile.
Docker utilisera ce Dockerfile pour exécuter toutes les instructions ou commandes nécessaires afin de construire une nouvelle image Docker sur la base de l’image de base (ubuntu:18.04
).
À présent, exécutez la commande tree
ci-dessous pour vérifier que tous les fichiers nécessaires pour exécuter l’application Python Flask sont présents dans le répertoire de travail (~/docker_python_flask_demo).

Construction d’une image Docker pour l’application API Python Flask
Vous disposez désormais des fichiers nécessaires pour déployer une application Python Flask, mais ces fichiers ne feront rien à moins que vous ne construisiez une image. Vous utiliserez la commande docker build
pour construire une image Docker en fonction des instructions que vous avez définies dans le Dockerfile.
Exécutez la commande docker build
ci-dessous pour construire une image Docker dans le répertoire de travail (.
). Cette commande étiquette (-t
) l’image comme flask-image
version 1 (:v1
).

Maintenant, exécutez la commande docker
ci-dessous pour lister toutes les images disponibles.
Ci-dessous, vous pouvez voir différentes attributs renvoyés, tels que REPOSITORY. Remarquez que le nom du REPOSITORY est flask-image et est étiqueté avec une version (v1), comme indiqué ci-dessous.

Exécution de l’application Python Flask dans un conteneur Docker
Après avoir créé une image Docker, vous pouvez maintenant exécuter l’application flash Python dans un conteneur Docker. Un conteneur Docker regroupe le code et ses dépendances pour exécuter des applications rapidement.
1. Exécutez la commande docker run
ci-dessous pour effectuer ce qui suit :
- Démarrer le conteneur en mode détaché (
-d
), donc il s’exécute en arrière-plan et renvoie la sortie de la console lors de la création. - Associer le port hôte Docker (
-p 5000:5000
) avec le port du conteneur. - Lance le conteneur Docker (
flask-image:v1
)
2. Ensuite, exécutez la commande docker
ci-dessous pour répertorier tous les conteneurs dans le moteur Docker. Vérifiez si Docker a créé le conteneur avec succès.

3. Enfin, exécutez la commande ci-dessous pour ouvrir votre navigateur Web dans la machine Ubuntu à l’aide d’elinks.
La commande ouvre le navigateur Web dans le terminal et demande un nom, comme indiqué ci-dessous.
Entrez votre nom et appuyez sur le bouton Soumettre.

4. Comme vous pouvez le voir ci-dessous, après avoir appuyé sur le bouton Soumettre, la fonction de connexion redirige vers la fonction de réussite dans l’application Flask.

Conclusion
Ce tutoriel visait à vous aider à travers le processus de configuration d’un conteneur Docker Python Flask API en utilisant des images Docker. Vous avez également abordé comment lancer des conteneurs Python Flask en utilisant des fichiers Dockerfile, ce qui vous permet de modifier et de créer des conteneurs personnalisés selon votre choix.
Quelles autres applications avez-vous en tête pour déployer sur un conteneur Docker ? Peut-être un conteneur Docker MongoDB ?