Python est un langage de programmation polyvalent populaire utilisé pour une grande variété d'applications. Il est utilisé par les développeurs de logiciels comme langage de support pour le contrôle et la gestion des builds, les tests et à d'autres fins.
Docker est une plate-forme conteneurisée open source qui vous permet d'exécuter votre application dans un conteneur léger. De cette façon, votre application s'exécute exactement de la même manière qu'en production avec le même système d'exploitation.
Dans cet article, nous allons vous montrer comment dockeriser des applications Python avec Miniconda sur CentOS 8.
Prérequis
- Un nouveau serveur CentOS 8 sur la plate-forme cloud Atlantic.Net
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant CentOS 8 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur CentOS 8, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
dnf update -y
Étape 2 - Installer Docker CE
Vous pouvez l'ajouter avec la commande suivante :
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Une fois le dépôt créé, exécutez la commande suivante pour installer Docker CE sur votre système.
dnf install docker-ce --nobest
Une fois l'installation terminée, démarrez le service Docker et activez-le au redémarrage du système avec la commande suivante :
systemctl start docker systemctl enable docker
Ensuite, vérifiez la version installée de Docker avec la commande suivante :
docker --version
Vous devriez obtenir le résultat suivant :
Docker version 20.10.5, build 55c4c88
Étape 3 – Créer un fichier Docker pour déployer l'application Python
Dans cette section, nous allons créer un répertoire pour le projet Python et créer un Dockerfile avec toutes les informations requises pour déployer l'application Python.
Commencez par créer un répertoire avec la commande suivante :
mkdir project
Ensuite, changez de répertoire pour projeter et créez un Dockerfile avec la commande suivante :
cd project nano Dockerfile
Ajoutez les lignes suivantes :
FROM python:slim RUN apt-get update && apt-get -y upgrade \ && apt-get install -y --no-install-recommends \ git \ wget \ g++ \ ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV PATH="/root/miniconda3/bin:${PATH}" ARG PATH="/root/miniconda3/bin:${PATH}" RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \ && mkdir /root/.conda \ && bash Miniconda3-latest-Linux-x86_64.sh -b \ && rm -f Miniconda3-latest-Linux-x86_64.sh \ && echo "Running $(conda --version)" && \ conda init bash && \ . /root/.bashrc && \ conda update conda && \ conda create -n python-app && \ conda activate python-app && \ conda install python=3.6 pip && \ echo 'print("Hello World!")' > python-app.py RUN echo 'conda activate python-app \n\ alias python-app="python python-app.py"' >> /root/.bashrc ENTRYPOINT [ "/bin/bash", "-l", "-c" ] CMD ["python python-app.py"]
Enregistrez et fermez le fichier lorsque vous avez terminé.
Le fichier ci-dessus téléchargera l'image minimale Python, installera Miniconda, créera un environnement Python et créera une application Hello World simple.
Étape 4 – Créer l'image de l'application Python
Maintenant, vous devrez créer l'image à l'aide du Dockerfile que nous avons créé à l'étape précédente.
Tout d'abord, changez le répertoire du projet avec la commande suivante :
cd project
Ensuite, créez l'application Python en exécutant la commande suivante :
docker build -t python-app .
Vous devriez obtenir le résultat suivant :
Downloading and Extracting Packages setuptools-52.0.0 | 724 KB | ########## | 100% certifi-2020.12.5 | 140 KB | ########## | 100% python-3.6.13 | 29.7 MB | ########## | 100% pip-21.0.1 | 1.8 MB | ########## | 100% Preparing transaction: ...working... done Verifying transaction: ...working... done Executing transaction: ...working... done Removing intermediate container 10f97804ad82 ---> 3662950574f9 Step 6/8 : RUN echo 'conda activate python-app \nalias python-app="python python-app.py"' >> /root/.bashrc ---> Running in faab9e188650 Removing intermediate container faab9e188650 ---> 8ee98d205c5c Step 7/8 : ENTRYPOINT [ "/bin/bash", "-l", "-c" ] ---> Running in 3e74eb8fd8b7 Removing intermediate container 3e74eb8fd8b7 ---> 6c6d83dfd01f Step 8/8 : CMD ["python python-app.py"] ---> Running in 4d8c066aeefc Removing intermediate container 4d8c066aeefc ---> 78e4f8e7e05e Successfully built 78e4f8e7e05e Successfully tagged python-app:latest
Vous pouvez maintenant vérifier les images téléchargées avec la commande suivante :
docker images
Vous devriez voir toutes les images dans la sortie suivante :
REPOSITORY TAG IMAGE ID CREATED SIZE python-app latest 78e4f8e7e05e 24 seconds ago 907MB python slim ce689abb4f0d 10 days ago 118MB
Étape 5 :Lancer le conteneur
À ce stade, l'image de l'application Python est prête. Vous pouvez maintenant lancer le conteneur depuis l'image python-app avec la commande suivante :
docker run python-app
Vous devriez voir la sortie de votre application Python dans la sortie suivante :
Hello World!
Vous pouvez également vous connecter à votre conteneur d'application Python et exécuter l'application.
Pour ce faire, exécutez à nouveau le conteneur avec la commande suivante :
docker run -it python-app /bin/bash
Vous serez connecté au conteneur python-app comme indiqué ci-dessous :
(python-app) [email protected]:/#
Maintenant, lancez votre application Python Hello World à l'aide de la commande suivante :
(python-app) [email protected]:/# python-app
Vous devriez obtenir le résultat suivant :
Hello World!
Vous pouvez également vérifier votre version de Python à l'aide de la commande suivante :
(python-app) [email protected]:/# python --version
Sortie :
Python 3.6.13 :: Anaconda, Inc.
Vous pouvez maintenant quitter le conteneur avec la commande suivante :
(python-app) [email protected]:/# exit
Conclusion
Dans le guide ci-dessus, vous avez appris à dockeriser une application Python avec Miniconda sur CentOS 8. Vous pouvez maintenant déployer votre application Python dans un environnement léger et conteneurisé sur votre compte d'hébergement VPS d'Atlantic.Net.