Cómo dockerizar una aplicación Flask

Cómo dockerizar una aplicación Flask

En este tutorial, aprenderá cómo crear una aplicación básica de frascos con Docker. Configurará su aplicación con un DockerFile y administrará las imágenes con un proceso de compilación automatizado.

En este proceso, también aprenderá cómo usar múltiples entornos virtuales de Python y mantener su código fuente organizado. Si eres nuevo en Python o Flask, es posible que desee consultar nuestra Guía para principiantes de Python, así como nuestra Guía para principiantes para Flask. Cubren los conceptos básicos de estos marcos para que pueda seguir mejor en este tutorial. Empecemos!

Que es el frasco?

Flask es un marco liviano de Python para construir aplicaciones web. Es simple, flexible y pragmático. Se puede extender fácilmente con el uso de extensiones y complementos. Flask se puede utilizar para crear pequeños sitios web o aplicaciones complejas a gran escala.

Flask es utilizado por compañías como Pinterest, Twitter, Walmart y Cisco. Uno de los usos comunes de Flask es para API REST que se utilizan para interactuar con otros sistemas. Las aplicaciones escritas en Flask también se pueden implementar fácilmente en un servidor o en una nube.

Crear una aplicación básica de frasco

Antes de que pueda crear una imagen de Docker con su aplicación, debe tener una aplicación básica que pueda ejecutar localmente o en un servidor.

En esta sección, creará una aplicación básica con Flask y luego la ejecutará en un contenedor Docker. Puede usar su editor preferido para crear la aplicación, o puede usar el siguiente comando en su terminal para crear una nueva aplicación:

  1. Comencemos con la creación de un nuevo directorio:
    mkdir flask-app && flask-app  
  2. A continuación, cree el entorno virtual de Python y luego active el entorno.
    python3 -m venv venv  fuente venv/bin/activar  
  3. Ahora instale el módulo Flask Python en el entorno virtual.
    Frasco de instalación de PIP  
  4. El siguiente comando creará los requisitos.archivo txt con los paquetes instalados en el entorno actual. Este archivo es útil para instalar el módulo en las implementaciones.
    Pip Freeze> Requisitos.TXT  
  5. Ahora, cree una aplicación de frascos de muestra ... puede escribir su código en un .PY FILE y ejecutarlo con el comando Python.
    aplicación Vim.py  

    Agregue el siguiente Snippt.

    # Importar módulo frasco de frask import frask app = frask (__ name__) @App.ruta ('/') def index (): devolver 'hola a frascos!' # Función del controlador principal si __name__ == "__main__": aplicación.correr()
    123456789101112# Importar frasco ModuleFrom Flask Import de frask App = Flask (__ Name__) @App.ruta ('/') def index (): devolver 'hola a frascos!' # Principal principal functionif __name__ == "__main__": App.correr()

  6. Su aplicación de frascos de muestra está lista. Puedes ejecutar este script con Python ahora.
    Flask Run --host 0.0.0.0 -Port 5000  
    Ejecutar la aplicación de la aplicación Flask AT de comando

Ahora que tiene una aplicación básica, puede ejecutarla en un contenedor Docker creando un archivo llamado DockerFile en el mismo directorio que su aplicación.archivo py.

Cree un Dockerfile para su aplicación Flask

Un DockerFile es un archivo que contiene instrucciones sobre cómo construir su imagen. Describe todo el proceso de construcción de su imagen a partir de la instalación de su aplicación Python hasta la creación de su contenedor.

  1. Creemos un archivo llamado Dockfile Según el directorio del proyecto. Este es el archivo que Docker lee instrucciones para crear una imagen.
    vim dockerfile  

    Agregue el siguiente código:

    Desde Python: 3-Alpine # Crear directorio de aplicaciones WorkDir /App # Instalar Dependencias de la aplicación Requisitos de copia.TXT ./ Ejecutar los requisitos de PIP Install -R.TXT # BUNDLE APP COPIA FUENTE ... EXPOSE 5000 CMD ["Flask", "Ejecutar", "-Host", "0.0.0.0 ","-puerto "," 5000 "] 

    Guarde el archivo y cierre.

  2. A continuación, cree la imagen de Docker ejecutando el comando mencionado a continuación. Aquí "Flask-App" está el nombre de la imagen.
    Docker Build -T Flask -App .  
  3. Esta imagen se creará en el registro de imágenes locales. Luego puede crear un contenedor Docker con el siguiente comando.
    Sudo Docker Run -it -P 5000: 5000 -D Flask -App  
  4. Ahora, verifique que el contenedor se esté ejecutando en su sistema.
    Docker Containers LS  

  5. Finalmente, abra un navegador y conéctese a hostil en el puerto 5000 (o use su propio puerto definido). Debería ver la aplicación Flask.

Puede usar un DockerFile para automatizar el edificio y la actualización de su imagen. Esto es útil si está trabajando con un equipo y la gente está agregando código a la misma aplicación.

Conclusión

En este tutorial, aprendió a crear una aplicación básica de frascos y construir una imagen de Docker con ella. También aprendió a crear un registro privado y automatizar el edificio y la actualización de su imagen. Esta es una excelente manera de crear compilaciones reproducibles e imágenes de contenedores que son fáciles de compartir e implementar. Esto puede ser útil si necesita configurar servidores o si desea ejecutar su aplicación en diferentes máquinas.