En este tutorial, aprenderá a ejecutar Nginx como un contenedor de Docker y exponerlo a su red local.
Además, aprenderá a crear un volumen de datos de Docker para compartir información entre un contenedor y el sistema de archivos del host.
Nginx es un popular software de código abierto que se usa para servicios web, proxy inverso, almacenamiento en caché, balanceo de carga, etc. Es bastante popular y se usa en muchos sitios web de alto tráfico en la actualidad. Una de las cargas de trabajo más comunes de Docker es utilizarlo para contenedores de servidores web. Le mostraremos cómo configurarlo con Nginx. Entonces, permítanos guiarlo a través del proceso.
Docker es una plataforma de creación de contenedores que empaqueta su aplicación en una imagen de contenedor fácilmente administrable.
Requisitos
Tienes que cumplir con los siguientes requisitos para completar este tutorial:
- Docker debe estar instalado y ejecutarse localmente en su sistema.
- Necesita una cuenta raíz, o un usuario puede ejecutar comandos sudo.
Configuración de Nginx Inside Docker
Extraer la Imagen
Primero, vamos a extraer la imagen oficial de Nginx. Ejecute el siguiente comando de extracción de Docker en el terminal para descargar la última imagen de Nginx desde el concentrador de Docker en su host de Docker.
sudo docker pull nginx
Ejecutar el contenedor Nginx Docker
Estamos listos para ejecutar el contenedor Nginx Docker y exponer su puerto a su red local. Para ello, ejecutamos la imagen con el comando:
sudo docker run -d -p 80:80 --name my-nginx-server nginx
-d
– Iniciar un contenedor en modo separado (el contenedor se ejecuta en segundo plano).-p
– Vincular un puerto del contenedor al host (enruta el tráfico del host del puerto 80 al puerto del contenedor 80).-name
– El nombre de nuestro contenedor Docker.
El último argumento, nginx
, le dice a Docker qué imagen usar para el contenedor.
Ahora abra un navegador y apúntelo a la dirección del host en el que ejecutó su contenedor Nginx. En mi caso, es http://192.168.122.101
. La página predeterminada del servidor web Nginx debería saludarlo.
Ahí está. Tiene una instancia de trabajo del contenedor Nginx Docker.
Lista de contenedores Docker
Para enumerar todos los contenedores Docker en ejecución, ejecute el siguiente comando:
sudo docker container ls
Según el resultado anterior, podemos detener nuestro contenedor Nginx Docker con cualquiera de los dos siguientes:
sudo docker stop 19411f8b3f35
sudo docker stop my-nginx-server
Para ver todos los contenedores, incluso los que no se están ejecutando, debe agregar -a
bandera.
sudo docker container ls -a
Compartir datos entre el contenedor Nginx Docker y el host
Los contenedores Docker son efímeros. De forma predeterminada, los datos creados dentro del contenedor solo están disponibles desde dentro del contenedor y solo mientras el contenedor se está ejecutando.
Entonces, permítanos mostrarle cómo hacer que los datos del interior del contenedor sean accesibles en la máquina host. Nuestro objetivo es crear un archivo HTML simple, alojarlo dentro de un contenedor y servirlo afuera usando el contenedor Nginx Docker.
Esta configuración nos permite tener contenido persistente del sitio web alojado fuera del contenedor.
Para lograr esta funcionalidad, usaremos la función de montaje de enlaces en Docker. Cuando usa un montaje de vinculación, un archivo o directorio en la máquina host se monta en un contenedor.
Entonces, primero creemos un nuevo directorio para el contenido de su sitio web dentro del directorio de inicio.
mkdir ~/www
Ahora vamos a crear un archivo HTML simple y poner algo de texto en su página de índice.
vim ~/www/index.html
<html>
<head>
<title>Nginx Docker</title>
</head>
<body>
<h1>My static page.</h1>
</body>
</html>
Copie el fragmento anterior y péguelo dentro. Luego, guarde el archivo y salga de Vim.
A continuación, ejecutaremos el contenedor Nginx Docker con el volumen adjunto en el contenedor /usr/share/nginx/html
al presente en el host www
directorio donde se encuentra el index.html
el archivo se guarda.
docker run -d -p 80:80 -v ~/www:/usr/share/nginx/html/ --name my-nginx-server nginx
El contenedor de Nginx está configurado de forma predeterminada para buscar una página de índice en /usr/share/nginx/html/
. En el comando anterior, -v
La opción configura un volumen de montaje de enlace que vincula el /
directorio desde el interior del contenedor Nginx Docker hasta el usr/share/nginx/html/
~/www
directorio en la máquina host.
Docker usa un símbolo de dos puntos (:
) para dividir la ruta del host de la ruta del contenedor. Recuerde, la ruta del host siempre es lo primero.
Nuevamente, si navega por http://192.168.122.101
, obtendrá el siguiente resultado en la ventana del navegador.
Eso es todo. Ahora tiene un contenedor Nginx Docker en ejecución que sirve una página web personalizada.
Conclusión
Nginx y Docker funcionan muy bien juntos. Este tutorial demostró cómo configurar y usar el contenedor Nginx Docker. También sabe cómo compartir información entre un contenedor y el sistema de archivos del host.
En caso de consultas, por favor deje sus comentarios.