Vamos a realizar una practica en donde crearemos un contenedor para nginx con docker, personalizaremos la pagina que vamos a mostrar y crearemos la configuración para que lea el nuevo archivo desde desde docker run.
Antes de iniciar
- Hablemos de docker, explicamos un poco este sistema de gestor de contenedores
- Docker comandos básicos explicamos los comandos que usaremos en este post
Nota: crearemos un directorio de trabajo segun el sistema operativo que estemos trabajando
-
Windows: c:/code/docker-nginx
-
Linux: /home/<USUARIO>/code/docker-nginx
Paso 1: Crear un archivo HTML
Creamos dentro del archivo "docker-nginx" el archivo index.html, donde colocaremos el siguiente código:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Docker nginx</title>
</head>
<body>
<h1>Código electrónica</h1>
<h2>Docker nginx</h2>
</body>
</html>
Paso 2: Crear un archivo de configuración de Nginx
Crea un archivo de configuración de Nginx llamado nginx.conf
con el siguiente contenido:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
Esta configuración, está indicando a Nginx que escuche en el puerto 80, responda a las solicitudes dirigidas a "localhost" y cuando alguien acceda a la raíz del servidor, sirva el archivo index.html
desde el directorio /usr/share/nginx/html
. Esto es lo que permite que cuando accedas a http://localhost/
, veas el mensaje de bienvenida definido en el archivo HTML.
Paso 3: Crear el contenedor Docker
Abre una terminal y navega hasta la ubicación del directorio "docker-nginx" donde tienes los archivos index.html
y nginx.conf
. Luego, ejecuta el siguiente comando para crear el contenedor:
docker run -d -p 80:80 --name nginx-container -v c:/code/docker-nginx/index.html:/usr/share/nginx/html/index.html -v c:/code/docker-nginx/nginx.conf:/etc/nginx/conf.d/default.conf nginx
Donde:
-d
: Ejecuta el contenedor en segundo plano.-p 80:80
: Mapea el puerto 80 del host al puerto 80 del contenedor.--name nginx-container
: Asigna un nombre al contenedor (puedes cambiar "nginx-container" por el nombre que prefieras).-v $(pwd)/index.html:/usr/share/nginx/html/index.html
: Monta el archivo HTML en la ubicación del contenedor para reemplazar el archivo predeterminado.-v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf
: Monta el archivo de configuración de Nginx en la ubicación del contenedor para reemplazar la configuración predeterminada.nginx
: El nombre de la imagen de Docker a utilizar.
Nota: Si esta en Windows, deberá colocar la ruta completa de la ubicación del directorio, "c:/code/docker-nginx", pero si esta en Linux deba remplazar por la ruta "/home/<USUARIO>/code" o "$(pwd)".
Paso 4: Acceder al mensaje de bienvenida
Abre tu navegador web e ingresa la dirección http://localhost
. Deberías ver el mensaje de bienvenida en la página.