GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo dockerizar aplicaciones de Python con Miniconda

Python es un popular lenguaje de programación de propósito general que se utiliza para una amplia variedad de aplicaciones. Los desarrolladores de software lo utilizan como lenguaje de soporte para el control y la gestión de compilaciones, las pruebas y otros fines.

Docker es una plataforma en contenedores de código abierto que le permite ejecutar su aplicación en un contenedor liviano. De esta manera, su aplicación se ejecuta exactamente de la misma manera que en producción utilizando el mismo sistema operativo.

En esta publicación, le mostraremos cómo dockerizar aplicaciones de Python con Miniconda en CentOS 8.

Requisitos

  • Un nuevo servidor CentOS 8 en Atlantic.Net Cloud Platform
  • Una contraseña de root configurada en su servidor

Paso 1:crear el servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

dnf update -y

Paso 2:instalar Docker CE

Puede agregarlo con el siguiente comando:

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

Una vez que se crea el repositorio, ejecute el siguiente comando para instalar Docker CE en su sistema.

dnf install docker-ce --nobest

Una vez finalizada la instalación, inicie el servicio Docker y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start docker
systemctl enable docker

A continuación, verifique la versión instalada de Docker con el siguiente comando:

docker --version

Deberías obtener el siguiente resultado:

Docker version 20.10.5, build 55c4c88

Paso 3:cree un archivo Docker para implementar la aplicación Python

En esta sección, crearemos un directorio para el proyecto Python y crearemos un Dockerfile con toda la información necesaria para implementar la aplicación Python.

Primero, crea un directorio con el siguiente comando:

mkdir project

A continuación, cambie el directorio a proyecto y cree un Dockerfile con el siguiente comando:

cd project
nano Dockerfile

Agregue las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado.

El archivo anterior descargará la imagen mínima de Python, instalará Miniconda, creará un entorno de Python y creará una aplicación Hello World simple.

Paso 4:crea la imagen de la aplicación de Python

Ahora, deberá crear la imagen utilizando el Dockerfile que hemos creado en el paso anterior.

Primero, cambie el directorio a proyecto con el siguiente comando:

cd project

A continuación, cree la aplicación de Python ejecutando el siguiente comando:

docker build -t python-app .

Deberías obtener el siguiente resultado:

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

Ahora puede verificar las imágenes descargadas con el siguiente comando:

docker images

Debería ver todas las imágenes en el siguiente resultado:

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

Paso 5:lanzar el contenedor

En este punto, la imagen de la aplicación Python está lista. Ahora puede iniciar el contenedor desde la imagen de la aplicación python con el siguiente comando:

docker run python-app

Debería ver el resultado de su aplicación python en el siguiente resultado:

Hello World!

También puede conectarse a su contenedor de aplicaciones de Python y ejecutar la aplicación.

Para hacerlo, vuelva a ejecutar el contenedor con el siguiente comando:

docker run -it python-app /bin/bash

Estará conectado al contenedor de la aplicación python como se muestra a continuación:

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

Ahora, ejecute su aplicación Python Hello World usando el siguiente comando:

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

Deberías obtener el siguiente resultado:

Hello World!

También puede verificar su versión de Python usando el siguiente comando:

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

Salida:

Python 3.6.13 :: Anaconda, Inc.

Ahora puede salir del contenedor con el siguiente comando:

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

Conclusión

En la guía anterior, aprendió cómo dockerizar una aplicación de Python con Miniconda en CentOS 8. Ahora puede implementar su aplicación de Python en un entorno liviano y en contenedores en su cuenta de alojamiento VPS de Atlantic.Net.


Linux
  1. Cómo empaquetar aplicaciones de Python para Linux

  2. Cómo instalar Python en Linux

  3. Cómo iniciar aplicaciones de inicio con retraso en Linux

  4. Cómo usar la exportación con Python en Linux

  5. Cómo matar el script de python con el script bash

Cómo instalar Flask con Python 3 en Ubuntu 18.04

Cómo ejecutar un comando de Shell con Python

Cómo encontrar aplicaciones instaladas con tamaño instalado en Linux

Cómo instalar aplicaciones Linux sin conexión con Cube

Cómo instalar Python 2.7 en CentOS 7.1 o 6.7 con Anaconda

Cómo instalar Apache con Python Mod_wsgi en Debian 10