programación

Despliegue de Flask con Docker

Para construir y desplegar una aplicación Flask utilizando Docker en un sistema operativo Ubuntu 18.04, primero debes asegurarte de tener instalado Docker en tu máquina. Luego, seguirás una serie de pasos que incluyen la configuración del entorno de desarrollo, la creación del archivo Dockerfile, la construcción de la imagen Docker, y finalmente el despliegue del contenedor.

Aquí tienes una guía detallada de los pasos que debes seguir:

Paso 1: Instalar Docker en Ubuntu 18.04

  1. Actualiza el índice de paquetes de apt:

    bash
    sudo apt update
  2. Instala los paquetes necesarios para permitir que apt use un repositorio sobre HTTPS:

    bash
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
  3. Añade la clave GPG oficial de Docker:

    bash
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. Añade el repositorio de Docker a las fuentes de apt:

    bash
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  5. Actualiza el índice de paquetes de apt nuevamente:

    bash
    sudo apt update
  6. Instala Docker:

    bash
    sudo apt install docker-ce
  7. Verifica que Docker se haya instalado correctamente revisando su versión:

    bash
    docker --version

Paso 2: Configurar el entorno de desarrollo de Flask

  1. Crea un directorio para tu proyecto Flask:

    bash
    mkdir mi_proyecto_flask cd mi_proyecto_flask
  2. Instala Flask en un entorno virtual utilizando pip (si aún no lo tienes instalado, puedes instalarlo usando sudo apt install python3-pip):

    bash
    python3 -m venv venv source venv/bin/activate pip install flask
  3. Crea tu aplicación Flask. Por ejemplo, crea un archivo app.py con el siguiente contenido:

    python
    from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return '¡Hola, mundo!' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')

Paso 3: Crear el archivo Dockerfile

  1. En el directorio raíz de tu proyecto Flask, crea un archivo llamado Dockerfile con el siguiente contenido:

    Dockerfile
    # Usa la imagen base oficial de Python FROM python:3.9-slim # Establece el directorio de trabajo en /app WORKDIR /app # Copia el archivo requirements.txt al directorio de trabajo COPY requirements.txt requirements.txt # Instala las dependencias del proyecto RUN pip install -r requirements.txt # Copia el contenido del directorio actual al directorio de trabajo en el contenedor COPY . . # Expone el puerto 5000 para que la aplicación Flask pueda ser accedida desde fuera del contenedor EXPOSE 5000 # Define el comando por defecto para ejecutar tu aplicación Flask CMD ["python", "app.py"]
  2. Crea un archivo llamado requirements.txt que liste las dependencias de tu aplicación Flask. En este caso, solo necesitas incluir Flask:

    makefile
    Flask==2.0.2

Paso 4: Construir la imagen Docker

  1. Desde el directorio raíz de tu proyecto, utiliza el comando docker build para construir la imagen Docker:
    bash
    docker build -t mi_proyecto_flask .

Paso 5: Ejecutar el contenedor Docker

  1. Una vez que la imagen se haya construido correctamente, puedes ejecutar un contenedor basado en esa imagen utilizando el comando docker run:

    bash
    docker run -p 5000:5000 mi_proyecto_flask

    Esto mapeará el puerto 5000 del contenedor al puerto 5000 de tu máquina host, permitiéndote acceder a tu aplicación Flask desde un navegador web en http://localhost:5000.

¡Listo! Ahora has construido y desplegado una aplicación Flask utilizando Docker en un sistema Ubuntu 18.04. Este enfoque te permite encapsular tu aplicación y sus dependencias en un entorno controlado, lo que facilita su distribución y despliegue en diferentes entornos.

Más Informaciones

Por supuesto, vamos a expandir la información proporcionada para ofrecerte una comprensión más profunda de cada paso y algunos detalles adicionales sobre cómo puedes personalizar y optimizar el proceso.

Paso 1: Instalar Docker en Ubuntu 18.04

Docker es una plataforma de código abierto diseñada para facilitar la creación, implementación y ejecución de aplicaciones dentro de contenedores. Los contenedores permiten empaquetar una aplicación con todas sus dependencias y ejecutarla de manera consistente en cualquier entorno.

Al instalar Docker en Ubuntu 18.04, estás preparando tu sistema para poder construir y ejecutar contenedores Docker que contendrán tu aplicación Flask. Los pasos detallados anteriormente te guiarán a través del proceso de instalación de Docker en tu sistema Ubuntu 18.04.

Paso 2: Configurar el entorno de desarrollo de Flask

Flask es un framework de desarrollo web minimalista y ligero para Python. Proporciona las herramientas necesarias para construir aplicaciones web de forma rápida y sencilla. En este paso, estás configurando el entorno de desarrollo para tu aplicación Flask instalando Flask en un entorno virtual.

El uso de un entorno virtual es una práctica recomendada en Python, ya que te permite aislar las dependencias de tu proyecto del sistema global, lo que evita conflictos entre versiones de paquetes y facilita la gestión de dependencias.

Paso 3: Crear el archivo Dockerfile

El archivo Dockerfile es un archivo de texto que contiene instrucciones que Docker utilizará para construir la imagen de tu aplicación. En este archivo, especificas cómo configurar el entorno dentro del contenedor, qué dependencias instalar y cómo ejecutar tu aplicación.

El contenido del Dockerfile proporcionado anteriormente incluye varias secciones clave:

  • FROM: Esta instrucción especifica la imagen base que se utilizará para construir la imagen de tu aplicación. En este caso, estamos utilizando la imagen oficial de Python como base.

  • WORKDIR: Esta instrucción establece el directorio de trabajo dentro del contenedor donde se copiarán los archivos de tu aplicación y donde se ejecutarán los comandos subsecuentes.

  • COPY: Estas instrucciones copian los archivos necesarios de tu proyecto (como el archivo requirements.txt y el código fuente de tu aplicación) al directorio de trabajo del contenedor.

  • EXPOSE: Esta instrucción expone un puerto dentro del contenedor, permitiendo que otros contenedores o aplicaciones externas se comuniquen con la aplicación dentro del contenedor. En este caso, estamos exponiendo el puerto 5000, que es el puerto predeterminado utilizado por Flask.

  • CMD: Esta instrucción define el comando por defecto que se ejecutará cuando el contenedor se inicie. En este caso, estamos ejecutando el archivo app.py para iniciar nuestra aplicación Flask.

Paso 4: Construir la imagen Docker

Una vez que hayas creado tu Dockerfile, el siguiente paso es construir la imagen Docker. Esto implica ejecutar el comando docker build desde el directorio que contiene tu Dockerfile. Docker leerá las instrucciones del Dockerfile y construirá una imagen que encapsula tu aplicación y sus dependencias.

Paso 5: Ejecutar el contenedor Docker

Una vez que la imagen Docker se haya construido con éxito, puedes ejecutar un contenedor basado en esa imagen utilizando el comando docker run. Este comando crea una instancia del contenedor y ejecuta tu aplicación dentro de él. Puedes especificar opciones adicionales, como mapear puertos o montar volúmenes, según sea necesario para tu aplicación.

Al seguir estos pasos, has logrado construir y desplegar una aplicación Flask utilizando Docker en Ubuntu 18.04. Este enfoque ofrece numerosos beneficios, incluida la portabilidad, la reproducibilidad y la escalabilidad de tu aplicación, lo que te permite desarrollar y desplegar aplicaciones de manera más eficiente y confiable. Además, Docker proporciona herramientas adicionales, como Docker Compose, que pueden facilitar la gestión de aplicaciones más complejas que constan de varios contenedores.

Botón volver arriba