Para los que aún no habéis comenzado a utilizar Docker, os recomiendo revisar la guía oficial Understanding Docker, así como el manual de instalación.
Docker allows you to package an application with all of its dependencies into a standardized unit for software development.
Si todo está apunto en tu entorno, podrás ejecutar sin problema comandos como docker version, obteniendo algo similar a esto:
1 | $ docker version |
Servidor HTTP básico
nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP proxy server
Como paso inicial, si queremos levantar un contenedor que corra el servicio HTTP de nginx, sólo tenemos que crear un fichero de configuración y especificar allí los detalles de nuestro virtualhost (por ejemplo en el fichero sample.conf):
1 | server { |
Esta es toda la configuración que tenemos que hacer!! Sólo queda pues, arrancar el contenedor con docker run:
1 | docker run -p 80:80 \ |
Hay que tener en cuenta que con la opción -p, mapeamos el puerto 80 del contender al 80 local y con los -v permitimos que ciertos directorios/ficheros locales se mapeen internamente a las rutas correspondientes en el contenedor. Finalmente, el -d lanza nuestro proceso como daemon, es decir, en segundo plano.
Configuración SSL
Antes de activar la configuración SSL en nginx, necesitamos contar con un certificado/key SSL para nuestro servidor (server.key y server.pem).
A partir de septiembre, podremos contar con certificados gratuitos gracias a Let’s Encrypt.
Para poder utilizarlos, copiaremos ambos ficheros en el directorio certs, alterando posteriormente la configuración del virtualhost:
1 | server { |
Como en el ejemplo anterior, ya sólo nos queda lanzar de nuevo el contenedor y tendremos el servicio activo (recuerda matar el anterior con docker kill <id contenedor>:
1 | docker run -p 80:80 -p 443:443 \ |
Como podemos ver en el comando anterior, al tener el SSL activo, tendremos que redireccionar también el puerto 443 y compartir igualmente el directorio de certificados para poderlo referenciar sin problema en la configuración.
