Cómo dockerizar una aplicación Django

Cómo dockerizar una aplicación Django

Docker es una de las plataformas de contenedores más populares que le permite administrar aplicaciones en contenedores. Docker proporciona arquitectura y capacidades para la automatización de contenedores, la seguridad, la personalización y el soporte empresarial.

Docker tiene tres componentes importantes: el cliente Docker (una herramienta de línea de comandos), Docker Host y Docker Registry. Estos tres componentes funcionan juntos para permitirle crear, ejecutar y almacenar aplicaciones.

Descubra cómo usar esta increíble herramienta al contener una aplicación Django de muestra. Primero, aprenda a instalar Docker en Ubuntu, macOS y Windows.

Instalar Docker en Ubuntu

Comience instalando Docker en su sistema operativo preferido. Puede seguir estas notas para instalar Docker en Ubuntu o usar las siguientes instrucciones para macOS o Windows.

Instalar Docker en macOS

Para instalar Docker en macOS, asegúrese de tener macOS 11 o superior. Luego sigue estos pasos:

  1. Descargue Docker desde el sitio web de Docker Hub .
  2. Haga doble clic en Docker.dmg para abrir el instalador.
  3. Arrastre el icono de Docker a la carpeta Aplicaciones.
  4. Para iniciar Docker, haga doble clic en Docker.app .
  5. El logotipo de ballena de Docker en la barra de estado indica que Docker se está ejecutando.

También puede instalar Docker en macOS a través de la línea de comandos siguiendo las instrucciones de instalación de Docker Mac .

Instalar Docker en Windows

Siga los siguientes pasos para instalar el escritorio de Docker en el sistema operativo Windows:

  1. Descargue Docker desde el sitio web de Docker Hub .
  2. Haga doble clic en Docker Desktop Installer.exe para ejecutar el instalador.
  3. Habilite la característica de Windows Hyper-V en la página de configuración durante la instalación.
  4. Siga el proceso y permita todos los permisos hasta que se complete la instalación.
  5. Después de la instalación, haga clic en Cerrar para completar el proceso.
  6. Para iniciar Docker, busque y seleccione Docker Desktop en los resultados de búsqueda de su escritorio.

Alternativamente, puede instalar Docker en el sistema operativo Windows usando una línea de comando siguiendo las instrucciones de instalación de Docker Windows .

Crear aplicación Django

Cree una aplicación Django simple. Puede ver la aplicación cuando navega a http://127.0.0.1:8000. Contenerizarás esta aplicación.

Aplicación en navegador con Hello docker H1

Crear un archivo Docker

Para contener la aplicación, debe crear una imagen de Docker para compilar y ejecutar contenedores. Una imagen de Docker es una plantilla de instrucciones sobre cómo ejecutar contenedores.

Utilizará un Dockerfile para crear una imagen para la aplicación. Cree un archivo en la carpeta raíz llamado Dockerfile. Luego, agregue las siguientes instrucciones al archivo:

FROM python:3

WORKDIR /app

ADD. /app/

EXPOSE 8000

COPY requirements.txt /app

RUN pip3 install -r requirements.txt --no-cache-dir

COPY. /app

ENTRYPOINT ["python3"]

CMD ["manage.py", "runserver", "0.0.0.0:8000"]

Los Dockerfiles usan palabras clave únicas de Docker para especificar instrucciones.

La palabra clave FROM identifica la imagen base con la que desea construir la imagen. La imagen de Python de Docker tiene los componentes necesarios para ejecutar la aplicación Django. Docker usará la misma imagen en compilaciones posteriores.

La palabra clave WORKDIR crea un directorio dentro del contenedor. El comando de ejemplo identifica el directorio /app como la carpeta raíz.

El comando ADD agrega todo lo que hay en la carpeta actual a la carpeta /app .

La palabra clave EXPOSE expone un puerto dentro de la imagen de Docker al mundo exterior. Puede ver la aplicación en contenedor en este puerto usando un navegador.

La palabra clave COPY copia el contenido de una carpeta y lo coloca en otra. En su caso, copiará todo el contenido de la aplicación del directorio actual. El contenido irá a la carpeta de la aplicación en el contenedor.

La palabra clave RUN ejecuta cualquier comando en una nueva capa de la imagen actual y confirma los resultados. El siguiente paso en Dockerfile usará la imagen confirmada resultante.

La palabra clave ENTRYPOINT define un contenedor como un ejecutable. En este caso, es Python3. Puede usarlo con la palabra clave CMD o en lugar de ella . Un Dockerfile debe especificar una o ambas palabras clave CMD o ENTRYPOINT . Docker define cómo cooperan las dos instrucciones.

La palabra clave CMD ejecuta un comando de Linux cuando se inicia la imagen. La instrucción define qué comando se ejecuta cuando ejecuta un contenedor.

Cree la imagen de Docker

Ahora que el Dockerfile está completo, continúe y cree la imagen de Docker. Ejecute el siguiente comando para construir la imagen:

docker build --tag docker-django-app:latest.

Cuando comience a construir, Docker construirá la imagen en capas. Las capas estarán de acuerdo con la cantidad de instrucciones dadas en el Dockerfile . En este caso, tendrás nueve capas. Nueve pasos representarán estas capas.

Una compilación exitosa aparecerá así:

docker crea correctamente la imagen

Ahora, si revisa las imágenes de su ventana acoplable, debería ver la nueva imagen.

imagen recién construida en la ventana acoplable

Ejecute el contenedor Docker

A continuación, debe ejecutar la imagen en el contenedor. Aquí es donde vivirá la aplicación. Ejecute el siguiente comando para ejecutar la imagen:

docker run --name docker-djangoapp -p 8000:80 -d docker-django-app:latest

Debería devolver un número de serie para el contenedor así:

nueva aplicación en contenedores

El comando de ejecución de Docker permite etiquetas de opciones para imágenes. En este caso, desea usar la etiqueta –name para nombrar el contenedor docker-djangoapp . Luego ejecute el contenedor en el puerto 8000:80 con -p . A continuación, especifique la imagen que desea crear el contenedor. Esta es la imagen docker-django-app:latest que creó anteriormente.

El comando docker run crea una capa contenedora sobre la imagen. Luego lo inicia usando el comando especificado. La sintaxis para ejecutar contenedores es la siguiente:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Verifique los contenedores de Docker para ver si el contenedor se está ejecutando. Cuando ejecutas docker ps debería aparecer de la siguiente manera:

Nuevo contenedor ejecutándose en docker

¡Felicidades! Has contenedorizado tu primera aplicación. A continuación, puede enviar el contenedor al registro de Docker para su almacenamiento. Puede acceder a su aplicación cuando lo desee desde cualquier máquina.

También puede compartirlo con otros en línea. El registro ofrece seguridad para las imágenes y permite privilegios adicionales en cuentas privadas.

¿Por qué dockerizar una aplicación?

Cada vez más desarrolladores utilizan Docker para optimizar la creación y gestión de contenedores en cualquier entorno virtual.

Docker viene con características productivas, incluido un cliente que emite comandos de compilación para los demonios de Docker. El daemon crea imágenes y ejecuta contenedores. Puede compilar y almacenar las imágenes en el registro de Docker. Esto garantiza que las imágenes estén seguras y disponibles en línea.

Docker ofrece imágenes oficiales ya configuradas que tienen componentes listos para usar. Puede usar estas imágenes para crear rápidamente contenedores para sus aplicaciones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *