Si está buscando ejecutar NGINX como un contenedor Docker, y exponerlo a su red local, aquí está cómo hacerlo.
El uso de contenedores Docker es una forma increíblemente fácil de desplegar aplicaciones y servicios en su red. Con esto, usted puede ampliar las ofertas de su negocio o probar rápidamente un nuevo servidor o servicio. Con estas aplicaciones como contenedores, es posible reducir la sobrecarga del administrador de sistemas, gracias a que ya no tiene que gestionar las aplicaciones a través de los gestores de paquetes o instalando desde el origen. Al instalar NGINX como un contenedor Docker, usted puede simplemente reemplazar la imagen cuando llegan nuevas actualizaciones.
Pero, ¿cómo se despliega NGINX como un contenedor Docker? Déjame explicarte el proceso. Haré una demostración en Ubuntu 16.04 y asumiré que ya tienes el docker instalado y listo para usar.
El gran desafío
La gestión de un contenedor Docker no es un reto. Lo que es un poco difícil, sin embargo, es poner ese contenedor a disposición de su red local (algo importante cuando se trabaja con un servidor. El proceso no es tan difícil, sólo tienes que saber cómo trabajar con el mando correcto para que esto suceda.
Más información sobre redes
Tirando de la imagen
Vamos a sacar la imagen oficial de NGINX con el comando:
docker pull nginx
Nota: Si no ha añadido su usuario estándar al grupo Docker, hágalo con el siguiente comando:
sudo gpasswd -a ${USER} docker
Después de que se ejecute el comando, cierre la sesión y vuelva a iniciar sesión. Ahora puedes ejecutar Docker sin tener que usar sudo.
Exponer el puerto a su red
Ahora tenemos que ejecutar la imagen NGINX de forma que exponga el puerto de contenedores del Docker al puerto de red. Para ello, ejecutamos la imagen con el comando:
docker run --nombre docker-nginx -p 80:80 nginx
El fallo de ese comando es:
- docker – el comando Docker actual
- run – esto instruye al docker que estamos ejecutando una imagen como un contenedor
- -nombre – esto le dice a Docker como queremos llamar a nuestro contenedor
- -p 80:80 esto informa al Docker cómo queremos exponer el puerto (en forma de puerto de red: puerto de contenedores)
- nginx – esto le indica a Docker qué imagen usar para el contenedor
Ahora puede apuntar un navegador en su red a la dirección IP del servidor que alberga el contenedor NGINX Docker para revelar la página de bienvenida de NGINX.
Supongamos que ya tiene el puerto 80 utilizado en la máquina que alberga el Docker (posiblemente para Apache u otro servidor. Si ese fuera el caso, tendrá que exponer un puerto externo diferente al puerto 80 del contenedor. Vamos a exponer el puerto 80 del contenedor al puerto 8080 del host. El comando para esto sería:
docker run --nombre docker-nginx -p 8080:80 nginx
Al apuntar un navegador de su red a la dirección IP de la máquina anfitriona, en el puerto 8080, se mostrará la página de bienvenida de NGINX.
Funcionamiento en modo independiente
Es posible que desee ejecutar ese contenedor en modo independiente (de lo contrario, no se le devolverá la línea de comandos sin matar al contenedor. Para ejecutar este contenedor en modo independiente, el comando sería:
docker run --nombre docker-nginx -p 8080:80 -d nginx
Volverá a aparecer el mensaje (mostrando un ID de contenedor) y estará listo para trabajar.
Acceso al contenedor
Aunque la mayoría de los contenedores están creados para ser entornos prefabricados, es posible que desee obtener acceso al contenedor en ejecución, de modo que pueda hacer un poco de configuración. Para eso, usted daría el comando:
docker exec -it CONTAINER_ID bash
Donde CONTAINER_ID es el ID real del contenedor en marcha. Ahora puede trabajar dentro de ese contenedor como si estuviera trabajando localmente. Lo más probable es que tenga que instalar las herramientas necesarias para trabajar dentro de su contenedor (como vi o nano. Estos se instalan por los medios habituales (por ejemplo, apt-get install nano. Sin embargo, se encontrará con un error que no permitirá que los archivos se muestren a través de los medios habituales (vi, nano, less, etc… Para evitar esto, debe cambiar el comando de ejecución de contenedor para establecer la variable xterm, así:
docker run --nombre docker-nginx-new -p 8080:80 -e TERM=xterm -d nginx
Ahora, al entrar en el contenedor, puede instalar el editor de su elección y trabajar con él.
Contenedores fáciles de usar
Ahí está; tiene una instancia de trabajo de NGINX, vía Docker container, a la que puede acceder desde su red local. Eso no fue un gran desafío, ¿verdad? Usted ha llevado sus habilidades con los contenedores de carga a un nivel completamente nuevo, con facilidad.
Boletín Semanal de Código Abierto
No se pierda nuestros consejos, tutoriales y comentarios sobre el sistema operativo Linux y las aplicaciones de código abierto. Entregado los martes