Post

Proyecto Docker

Aquí tenemos un ejemplo de un proyecto sencillo donde trabajaremos con Docker y un script de Bash. Este proyecto consiste en crear un contenedor que ejecute un servidor web Nginx y un script de Bash que automatice las tareas relacionadas con la construcción, ejecución y limpieza del contenedor.


Estructura del proyecto

1
2
3
4
5
mi-proyecto-docker/
├── Dockerfile
├── index.html
├── script.sh
└── README.md

1. Archivo Dockerfile

Este archivo define la imagen personalizada que usaremos para el servidor web Nginx.

1
2
3
4
5
6
7
8
9
10
11
# Usamos la imagen base de Nginx
FROM nginx:latest

# Copiamos el archivo HTML al directorio de Nginx
COPY index.html /usr/share/nginx/html/

# Exponemos el puerto 80
EXPOSE 80

# Comando por defecto para ejecutar Nginx
CMD ["nginx", "-g", "daemon off;"]

2. Archivo index.html

Este archivo es el contenido que servirá el servidor web.

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Servidor Nginx con Docker</title>
</head>
<body>
    <h1>¡Hola, mundo desde Docker!</h1>
    <p>Este es un servidor web Nginx ejecutado en un contenedor Docker.</p>
</body>
</html>

3. Script de Bash (script.sh)

Este script automatiza las tareas comunes: construir la imagen, ejecutar el contenedor, detenerlo y limpiarlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash

# Nombre de la imagen y el contenedor
IMAGE_NAME="mi-nginx"
CONTAINER_NAME="mi-nginx-container"

# Función para construir la imagen
build_image() {
    echo "Construyendo la imagen Docker..."
    docker build -t $IMAGE_NAME .
    echo "Imagen construida: $IMAGE_NAME"
}

# Función para ejecutar el contenedor
run_container() {
    echo "Ejecutando el contenedor..."
    docker run -d --name $CONTAINER_NAME -p 8080:80 $IMAGE_NAME
    echo "Contenedor ejecutándose en http://localhost:8080"
}

# Función para detener el contenedor
stop_container() {
    echo "Deteniendo el contenedor..."
    docker stop $CONTAINER_NAME
    docker rm $CONTAINER_NAME
    echo "Contenedor detenido y eliminado."
}

# Función para limpiar la imagen
clean_image() {
    echo "Eliminando la imagen Docker..."
    docker rmi $IMAGE_NAME
    echo "Imagen eliminada: $IMAGE_NAME"
}

# Menú de opciones
echo "Seleccione una opción:"
echo "1. Construir la imagen"
echo "2. Ejecutar el contenedor"
echo "3. Detener el contenedor"
echo "4. Limpiar la imagen"
echo "5. Salir"
read -p "Opción: " OPTION

case $OPTION in
    1)
        build_image
        ;;
    2)
        run_container
        ;;
    3)
        stop_container
        ;;
    4)
        clean_image
        ;;
    5)
        echo "Saliendo..."
        ;;
    *)
        echo "Opción no válida."
        ;;
esac

4. Archivo README.md

Este archivo explica cómo usar el proyecto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Proyecto Docker con Bash Script

Este proyecto crea un servidor web Nginx utilizando Docker y automatiza las tareas comunes con un script de Bash.

## Requisitos

- Docker instalado
- Bash (Linux o WSL en Windows)

## Estructura del proyecto

- `Dockerfile`: Define la imagen personalizada de Nginx.
- `index.html`: Archivo HTML que se servirá desde el servidor.
- `script.sh`: Script de Bash para automatizar tareas.
- `README.md`: Documentación del proyecto.

## Uso

1. **Clonar el repositorio**:
   ```bash
   git clone <url-del-repositorio>
   cd mi-proyecto-docker
  1. Dar permisos de ejecución al script:
    1
    
    chmod +x script.sh
    
  2. Ejecutar el script:
    1
    
    ./script.sh
    
  3. Seleccionar una opción:
    • 1: Construir la imagen Docker.
    • 2: Ejecutar el contenedor.
    • 3: Detener y eliminar el contenedor.
    • 4: Limpiar la imagen Docker.
    • 5: Salir.
  4. Acceder al servidor web: Una vez que el contenedor esté en ejecución, abre tu navegador y ve a:
    1
    
    http://localhost:8080
    

Notas

  • Asegúrate de que el puerto 8080 esté libre en tu máquina.
  • Puedes personalizar el archivo index.html para cambiar el contenido del servidor web. ```

Cómo usar el proyecto

  1. Crea los archivos mencionados en la estructura del proyecto.
  2. Da permisos de ejecución al script de Bash:
    1
    
    chmod +x script.sh
    
  3. Ejecuta el script:
    1
    
    ./script.sh
    
  4. Sigue las instrucciones del menú para construir la imagen, ejecutar el contenedor, detenerlo o limpiarlo.

Este proyecto es un ejemplo básico, pero puedes ampliarlo para incluir más funcionalidades, como manejar múltiples servicios, usar variables de entorno o integrar herramientas de monitoreo. ¡Si necesitas ayuda con algo más, no dudes en preguntar!

This post is licensed under CC BY 4.0 by the author.