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.