Desplegar una aplicación web local con NGINX y Docker

Linux Recipes Docker Nginx

El NGINX es un servidor web muy ligero y eficiente, que en la Ciencia de Datos puede ser muy útil para el despliegue de aplicaciones de IA, compuestas por diferentes componentes dockeriados. Veremos lo simple que puede llegar ser despliegar cualquier aplicación web si utilizamos este servidor dentro de un contenedor docker.

José R Sosa https://josersosa.github.io/personalweb/
05-10-2021

NGINX es un servidor web muy ligero y eficiente, que es usado por desarrolladores y en ingenieros de operaciones, no solo para proveer todo tipo de aplicaciones web, sino también como proxi inverso.

Para reproducir este tutorial necesitaras:

Enlaces importantes

Corriendo un Web service básico

Podemos ejecutar docker por línea de comandos o por el Docker Desktop

docker run --rm -d -p 8080:80 --name webapp nginx

Vemos brevemente el significado de los parámetros utilizados:

Ejecutando la web por defecto

Bastara con acceder a la dirección http://locahost:8080/ para acceder a la página, por defecto, de NGINX:

image-20210426115523552

Desplegando nuestra propia WebApp

Cómo demostración, crearemos un HTML simple como página principal (index.html):

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Docker Nginx image</title>
</head>
<body>
  <h2>Esta página corre dentro de un contenedor con Nginx</h2>
</body>
</html>

Desplegamos el contenedor con nuestro HTML personalizado:

docker run --rm -d -p 8080:80 --name webapp -v /path_to_html_dir:/usr/share/nginx/html nginx

El parámetro -v de docker permite compartir un archivo o directorio local con el contenedor a través de u protocolo llamado HostPath. De esta manero podemos realizar cambios en la aplicación desde nuestro ambiente de desarrollo local y ver sus efectos en el servicio dockerizado que lo expone.

Accediendo a nuestra WebApp local, ahora vemos nuestra versión del index.html:

image-20210426115108122

Fuente: https://www.docker.com/blog/how-to-use-the-official-nginx-docker-image/

Corrections

If you see mistakes or want to suggest changes, please create an issue on the source repository.

Citation

For attribution, please cite this work as

Sosa (2021, May 10). Blog de José R Sosa: Desplegar una aplicación web local con NGINX y Docker. Retrieved from https://josersosa.github.io/personalweb/posts/2021-05-11-despliegue-de-una-aplicacin-web-con-nginx-y-docker/

BibTeX citation

@misc{sosa2021desplegar,
  author = {Sosa, José R},
  title = {Blog de José R Sosa: Desplegar una aplicación web local con NGINX y Docker},
  url = {https://josersosa.github.io/personalweb/posts/2021-05-11-despliegue-de-una-aplicacin-web-con-nginx-y-docker/},
  year = {2021}
}