GNU/Linux >> Tutoriels Linux >  >> Linux

Comment dockeriser les applications Python avec Miniconda

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.


Linux
  1. Comment empaqueter des applications Python pour Linux

  2. Comment installer Python sur Linux

  3. Comment gérer plusieurs versions de Python avec Pyenv sous Linux

  4. Comment dockeriser les applications Python avec Miniconda [une approche hybride]

  5. Comment Kali gère la prochaine fin de vie de Python 2

Comment installer Flask avec Python 3 sur Ubuntu 18.04

Comment exécuter une commande Shell avec Python

Comment trouver des applications installées avec une taille installée sous Linux

Comment installer des applications Linux hors ligne avec Cube

Comment installer Python 2.7 sur CentOS 7.1 ou 6.7 avec Anaconda

Comment installer Apache avec Python Mod_wsgi sur Debian 10