Introducción
En este tutorial, aprenderá a crear una aplicación Flask básica con Docker. Configure su aplicación con un Dockerfile y administre imágenes con un proceso de compilación automatizado.
En este proceso, también aprenderá a usar múltiples entornos virtuales de Python y a mantener su código fuente organizado.
¿Qué es Flask?
Flask es un marco ligero de Python para crear aplicaciones web. Es simple, flexible y pragmático. Se puede ampliar fácilmente con el uso de extensiones y complementos. Flask se puede utilizar para crear sitios web pequeños o aplicaciones complejas a gran escala.
Flask es utilizado por empresas como Pinterest, Twitter, Walmart y Cisco. Uno de los usos comunes de Flask es para las 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 la nube.
Crear una aplicación Flask básica
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 de Docker. Puede usar su editor favorito para crear la aplicación o puede usar el siguiente comando en su terminal para crear una nueva aplicación:
Comencemos con la creación de un nuevo directorio:
mkdir flask-app && flask-app
A continuación, cree el entorno virtual de Python y luego active el entorno:
python3 -m venv venv
source venv/bin/activate
Ahora instale el módulo Flask Python en el entorno virtual:
pip install Flask
El siguiente comando creará el archivo Requisitos.txt con los paquetes instalados en el entorno actual. Este archivo es útil para instalar el módulo en distribuciones:
pip freeze > requirements.txt
Ahora cree una aplicación Flask de muestra. Puede escribir su código en un archivo .py
y ejecutarlo con el comando python:
vim app.py
Agregue el fragmento a continuación:
# Import flask module
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello to Flask!'
# main driver function
if __name__ == "__main__":
app.run()
Su aplicación de muestra Flask está lista. Puede ejecutar este script con Python ahora:
flask run --host 0.0.0.0 --port 5000
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 archivo app.py.
Cree un Dockerfile para su aplicación Flask
Un Dockerfile es un archivo que contiene instrucciones sobre cómo crear la imagen. Describe todo el proceso de creación de imágenes, desde la instalación de la aplicación de Python hasta la creación del contenedor.
Vamos a crear un archivo llamado Dockerfile en el directorio del proyecto. Esta es la ventana flotante del archivo que lee las instrucciones para crear la imagen:
vim Dockerfile
Agrega el siguiente código:
FROM python:3-alpine
# Create app directory
WORKDIR /app
# Install app dependencies
COPY requirements.txt ./
RUN pip install -r requirements.txt
# Bundle app source
COPY . .
EXPOSE 5000
CMD [ "flask", "run","--host","0.0.0.0","--port","5000"]
Guarde el archivo y ciérrelo.
Luego, cree la imagen de Docker ejecutando el comando que se indica a continuación. Aquí "flask-app" es el nombre de la imagen:
docker build -t flask-app .
Esta imagen se creará en el registro de imágenes local. Luego puede crear un contenedor Docker con el siguiente comando:
sudo docker run -it -p 5000:5000 -d flask-app
Ahora verifique que el contenedor se esté ejecutando en su sistema:
docker containers ls
Finalmente, abra un navegador y conéctese a localhost en el puerto 5000 (o use su puerto definido). Debería ver la aplicación recién creada.
Puede usar un Dockerfile para automatizar la creación y actualización de su imagen.
Conclusión
En este tutorial, aprendió a crear una aplicación Flask básica y crear una imagen de Docker con ella. También aprendiste a crear un registro privado y automatizar la creación y actualización de tu imagen.