Si eres nuevo en Docker y los contenedores, aprender a implementar una aplicación de API de Python Flask en Docker es una excelente manera de comenzar. Docker te permite contenerizar aplicaciones con tecnología liviana y seguridad para una implementación rápida de aplicaciones.
En este tutorial, aprenderás a convertirte en tu propio maestro para configurar e implementar aplicaciones de API de Python Flask en contenedores Docker.
¡Prepárate y comienza la implementación!
Prerrequisitos
Si deseas seguir paso a paso, necesitarás tener instalado lo siguiente:
- Máquina Ubuntu con Docker instalado. Este tutorial utiliza Ubuntu 18.04.5 LTS con Docker v19.03.8.
- Python v3.9 o posterior instalado en la máquina Ubuntu. Este tutorial utilizará Python v3.9.2 en una máquina Ubuntu.
- Elinks instalado en la máquina Ubuntu utilizado para probar la API en este tutorial.
Creando una aplicación API de Python Flask (API GET y POST)
Comienza este tutorial creando una aplicación Python Flask. Flask es un marco de aplicación web micro WSGI ligero escrito en Python. Flask proporciona herramientas y características útiles para crear aplicaciones web en Python.
Antes de crear una aplicación Python Flask, instalarás Python Flask y un entorno virtual de Python donde Flask ejecutará una aplicación.
1. Inicia sesión en tu máquina Ubuntu utilizando tu cliente SSH favorito.
2. A continuación, ejecuta los siguientes comandos para crear un directorio llamado ~/docker_python_flask_demo y cambiarte a ese. Este directorio contendrá todos los archivos requeridos por Python y Docker para ejecutar una aplicación.
3. Ejecuta el comando pip
de abajo para instalar
un entorno virtual de Python (virtualenv
) que Flask necesita para ejecutar las aplicaciones. Un entorno virtual de Python ofrece su propio binario de Python y paquetes instalados por aplicación para evitar conflictos con otras aplicaciones.

4. Ejecuta el comando virtualenv
de abajo para crear y activar un entorno virtual utilizando el módulo venv
.

5. Ahora, ejecuta el comando de abajo para instalar el paquete Python flask
con el administrador de paquetes pip
.
6. Ejecute el siguiente comando para activar los paquetes en su entorno virtual antes de poder instalarlos o usarlos. Esto modifica la variable de entorno VIRTUAL_ENV
para que apunte a su entorno virtual y antepone el binario de Python del entorno virtual al camino, de modo que ejecute el binario correcto.
7. Cree un archivo más, llamado requirements.txt, y defina la dependencia de la aplicación Flask, como se muestra a continuación.
8. Cree un archivo de texto ~/docker_python_flask_demo/app.py y llénelo con el siguiente código en Python.
El siguiente código en Python importa la clase flask
y crea una instancia de la clase llamada app
. La instancia de la clase app
contiene dos funciones login()
que se ejecutan cuando los usuarios envían solicitudes en la página /login
.
La función success()
se ejecuta luego, mostrando el mensaje de bienvenida “nombre-del-usuario” en el navegador.
9. Crea un archivo más llamado ~/docker_python_flask_demo/form.html y copia/pega el siguiente código.
Al ejecutar el código HTML a continuación se crea un formulario con dos campos de entrada; uno es para proporcionar tu nombre y el otro es un botón de enviar.
Tan pronto como proporciones un nombre de usuario y presiones el botón de enviar, se envía una solicitud POST, y Flask ejecuta otra función y abre una nueva página web en http://localhost:5000/success/<username>.
10. Finalmente, ejecuta el comando Python
a continuación para verificar que la aplicación (app.py
) funcione localmente en tu sistema.
Como puedes ver a continuación, la aplicación se está ejecutando correctamente en la máquina Ubuntu pero no en Docker. Lanzarás la misma aplicación en Docker en las siguientes secciones.

Creación de un Dockerfile para Implementar la Aplicación de la API de Python Flask
Acabas de crear y verificar que la aplicación Python Flask funcione localmente en tu máquina. Pero antes de implementar la aplicación en Docker, primero crearás un Dockerfile para definir todos los conjuntos de instrucciones para construir la imagen de Docker.
Crea un archivo llamado Dockerfile en el directorio ~/docker_python_flask_demo, y copia/pega el contenido siguiente en el Dockerfile.
Docker utilizará este Dockerfile para ejecutar todas las instrucciones o comandos necesarios para construir una nueva imagen de Docker sobre la imagen base (ubuntu:18.04
).
Ahora, ejecuta el comando tree
a continuación para verificar que todos los archivos necesarios para ejecutar la aplicación Python Flask estén contenidos en el directorio de trabajo (~/docker_python_flask_demo).

Construyendo una Imagen de Docker para la Aplicación de API Python Flask
Ahora tienes los archivos necesarios para implementar una aplicación Python Flask, pero estos archivos no harán nada a menos que construyas una imagen. Ejecutarás el comando docker build
para construir una imagen de Docker basada en las instrucciones que has establecido en el Dockerfile.
Ejecuta el comando docker build
a continuación para construir una imagen de Docker en el directorio de trabajo (.
). Este comando etiqueta (-t
) la imagen como flask-image
versión 1 (:v1
).

Ahora, ejecuta el comando docker
a continuación para listar todas las imágenes disponibles.
A continuación, puedes ver varios atributos devueltos, como REPOSITORIO. Observa que el nombre del REPOSITORIO es flask-image y está etiquetado con una versión (v1), como se muestra a continuación.

Ejecución de la Aplicación Python Flask en un Contenedor Docker
Después de crear una imagen de Docker, ahora puedes ejecutar la aplicación Python Flask en un contenedor Docker. Un contenedor Docker empaqueta el código y sus dependencias para ejecutar aplicaciones rápidamente.
1. Ejecuta el comando docker run
a continuación para realizar lo siguiente:
- Inicia el contenedor en modo desconectado (
-d
), para que se ejecute como un proceso en segundo plano y devuelva la salida de la consola al crearlo. - Mapea el puerto del host de Docker (
-p 5000:5000
) con el puerto del contenedor. - Arranca el contenedor Docker (
flask-image:v1
)
2. A continuación, ejecuta el comando docker
a continuación para listar todos los contenedores en el motor de Docker. Verifica si Docker creó el contenedor correctamente.

3. Por último, ejecuta el siguiente comando para abrir tu navegador web en la máquina Ubuntu usando elinks.
El comando abre el navegador web en la terminal y solicita un nombre, como se muestra a continuación.
Ingresa tu nombre y presiona el botón Enviar.

4. Como puedes ver a continuación, después de presionar el botón Enviar, la función de inicio de sesión redirige a la función de éxito en la aplicación Flask.

Conclusión
Este tutorial tuvo como objetivo ayudarte a través del proceso de configuración de un contenedor Docker de API Flask de Python utilizando imágenes de Docker. También has aprendido cómo lanzar contenedores Python Flask usando Dockerfiles, lo que te permite editar y construir contenedores personalizados de tu elección.
Entonces, ¿qué otras aplicaciones tienes en mente para implementar en contenedores Docker? ¿Quizás un contenedor Docker MongoDB?