Laboratorio 4B: Docker y Docker Compose

Unidad: 4 - Docker y Containerización
Duración Estimada: 90-120 minutos
Dificultad: Intermedio

Objetivos

  • Instalar Docker y validar motor
  • Levantar un servicio con Docker Compose
  • Revisar logs, puertos y volúmenes

Requisitos Previos

  • VM Ubuntu Server LTS (22.04 o 24.04) con acceso SSH
  • Usuario con permisos sudo

Pasos del Laboratorio

Paso 1: Instalación (20-30 min)

BASH
1$ sudo apt update


2$ sudo apt install -y docker.io docker-compose-plugin


3$ systemctl status docker --no-pager
 docker.service - Docker Application Container Engine
     Active: active (running)


4$ sudo docker version
1
apt update actualiza indice.
2
apt install docker.io instala Docker y el plugin de Compose.
3
systemctl status docker valida servicio.
4
docker version valida el cliente/servidor.

Paso 2: Compose - servicio web simple (30-40 min)

BASH
1$ mkdir -p ~/lab4b && cd ~/lab4b


2$ cat > compose.yml <<'EOF'
services:
  web:
    image: nginx:1.25-alpine
    ports:
      - "8080:80"
EOF


3$ sudo docker compose up -d


4$ sudo docker compose ps


5$ curl -I http://127.0.0.1:8080/
HTTP/1.1 200 OK
Server: nginx
1
mkdir/cd crea un workspace del lab.
2
compose.yml define un contenedor Nginx expuesto en 8080.
3
docker compose up -d levanta el stack en background.
4
docker compose ps valida estado.
5
curl -I valida que responde.

Paso 3: Logs, puertos y limpieza (20-30 min)

BASH
1$ sudo docker compose logs --tail 50


2$ sudo ss -lntp | grep ':8080'


3$ sudo docker compose down
1
docker compose logs muestra evidencia de ejecucion.
2
ss -lntp evidencia que el puerto esta escuchando.
3
docker compose down detiene y elimina contenedores del stack.

Entregables (Evidencia)

  • systemctl status docker --no-pager
  • docker compose ps
  • curl -I http://127.0.0.1:8080/
  • docker compose logs --tail 50

Checklist de aceptación

Code Appendix