Esto es solo un ejemplo en el que en el Dockerfile se indica que se parta de una imagen de debian 12, que se instale en el docker vim, wget y nginx (en realidad con nginx solamente nos valdría), se declara una variable de entorno llamada nginxDir para definir una ruta, se elimina el archivo de configuración por defecto de nginx, se añade la configuración de nginx que deseamos, se expone el puerto 80 y se indica que el comando que se ejecutará será nginx.
De esta forma conseguimos tener un nginx sirviendo una web que tenemos en por ejemplo /root/website/volumen .
El Dockerfile:
FROM debian:12 RUN apt update && apt install -y nginx vim wget ENV nginxDir "/etc/nginx" RUN rm $nginxDir/sites-available/default ADD web.conf $nginxDir/sites-available/default EXPOSE 80 CMD ["nginx","-g","daemon off;"]
Ejecutado así:
docker run -it --rm -d -v /root/website/volumen/:/var/www/html -p 8080:80 nginx5
Si alteramos algo en /root/website/volumen cambiará. De esa forma el contenedor si se para la web no se ve pero no mantiene archivo alguno salvo el de configuración de nginx.
Para algo que no esté en cluster sirve. Por ejemplo para desarrollo.
Si fuese algo en producción es más interesante montarlo vía NFS y otras formas.