GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo ejecutar Nginx en un contenedor Docker:una guía paso a paso

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:

  1. Docker debe estar instalado y ejecutarse localmente en su sistema.
  2. 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 /usr/share/nginx/html/ directorio desde el interior del contenedor Nginx Docker hasta el ~/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.


Docker
  1. Instalar NGINX en openSUSE - ¿Guía paso a paso?

  2. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  3. Cómo implementar un contenedor nginx con Docker en Linode

  4. Una introducción a Docker

  5. Cómo ejecutar un comando en un contenedor Docker en ejecución

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo ejecutar contenedores Docker

Comandos de Docker para gestionar el ciclo de vida de los contenedores (guía definitiva)

Guía para principiantes sobre la política de reinicio de Docker

Ejecutar Docker Container en segundo plano (modo separado)