GNU/Linux >> Linux Esercitazione >  >> Linux

Come Dockerizzare le Applicazioni Python con Miniconda

Python è un popolare linguaggio di programmazione generico utilizzato per un'ampia varietà di applicazioni. Viene utilizzato dagli sviluppatori di software come linguaggio di supporto per il controllo e la gestione della build, il test e altri scopi.

Docker è una piattaforma containerizzata open source che consente di eseguire l'applicazione in un container leggero. In questo modo l'applicazione viene eseguita esattamente come in produzione utilizzando lo stesso sistema operativo.

In questo post, ti mostreremo come dockerizzare le applicazioni Python con Miniconda su CentOS 8.

Prerequisiti

  • Un nuovo server CentOS 8 sulla piattaforma Atlantic.Net Cloud
  • Una password di root configurata sul tuo server

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo CentOS 8 come sistema operativo con almeno 2 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Dopo aver effettuato l'accesso al server CentOS 8, esegui il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.

dnf update -y

Passaggio 2:installazione di Docker CE

Puoi aggiungerlo con il seguente comando:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Una volta creato il repository, esegui il comando seguente per installare Docker CE sul tuo sistema.

dnf install docker-ce --nobest

Al termine dell'installazione, avvia il servizio Docker e abilitalo all'avvio al riavvio del sistema con il seguente comando:

systemctl start docker
systemctl enable docker

Quindi, verifica la versione installata di Docker con il seguente comando:

docker --version

Dovresti ottenere il seguente output:

Docker version 20.10.5, build 55c4c88

Passaggio 3:crea un file Docker per distribuire l'app Python

In questa sezione creeremo una directory per il progetto Python e creeremo un Dockerfile con tutte le informazioni necessarie per distribuire l'app Python.

Innanzitutto, crea una directory con il seguente comando:

mkdir project

Quindi, cambia la directory in project e crea un Dockerfile con il seguente comando:

cd project
nano Dockerfile

Aggiungi le seguenti righe:

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"]

Salva e chiudi il file quando hai finito.

Il file sopra scaricherà l'immagine minima di Python, installerà Miniconda, creerà un ambiente Python e creerà una semplice applicazione Hello World.

Fase 4:crea l'immagine dell'applicazione Python

Ora dovrai creare l'immagine usando il Dockerfile che abbiamo creato nel passaggio precedente.

Innanzitutto, cambia la directory in project con il seguente comando:

cd project

Quindi, compila l'applicazione Python eseguendo il comando seguente:

docker build -t python-app .

Dovresti ottenere il seguente output:

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

Ora puoi controllare le immagini scaricate con il seguente comando:

docker images

Dovresti vedere tutte le immagini nel seguente output:

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
python-app   latest    78e4f8e7e05e   24 seconds ago   907MB
python       slim      ce689abb4f0d   10 days ago      118MB

Fase 5:avvia il container

A questo punto, l'immagine dell'applicazione Python è pronta. Ora puoi avviare il contenitore dall'immagine dell'app python con il seguente comando:

docker run python-app

Dovresti vedere l'output della tua applicazione Python nel seguente output:

Hello World!

Puoi anche connetterti al contenitore dell'applicazione Python ed eseguire l'applicazione.

Per farlo, esegui nuovamente il contenitore con il seguente comando:

docker run -it python-app /bin/bash

Sarai connesso al contenitore dell'app python come mostrato di seguito:

(python-app) [email protected]:/#

Ora esegui la tua applicazione Python Hello World usando il seguente comando:

(python-app) [email protected]:/# python-app

Dovresti ottenere il seguente output:

Hello World!

Puoi anche verificare la tua versione di Python usando il seguente comando:

(python-app) [email protected]:/# python --version

Uscita:

Python 3.6.13 :: Anaconda, Inc.

Ora puoi uscire dal container con il seguente comando:

(python-app) [email protected]:/# exit

Conclusione

Nella guida sopra, hai imparato come dockerizzare un'applicazione Python con Miniconda su CentOS 8. Ora puoi distribuire la tua applicazione Python in un ambiente leggero e containerizzato sul tuo account di hosting VPS da Atlantic.Net.


Linux
  1. Come impacchettare applicazioni Python per Linux

  2. Come installare Python su Linux

  3. Come gestire più versioni di Python con Pyenv su Linux

  4. Come compilare e installare Python con il supporto di OpenSSL?

  5. Come Kali si occupa dell'imminente Python 2 End-of-Life

Come installare Flask con Python 3 su Ubuntu 18.04

Come eseguire un comando Shell con Python

Come trovare applicazioni installate con dimensioni installate in Linux

Come installare applicazioni Linux offline con Cube

Come installare Python 2.7 su CentOS 7.1 o 6.7 con Anaconda

Come installare Apache con Python Mod_wsgi su Debian 10