8. Probando contenedores
8: Probando los Contenedores
Duración estimada: 20 minutos
8.1 Introducción
¡Ya tenemos todos nuestros contenedores en funcionamiento! En este tutorial vamos a probar cada uno de ellos para verificar que todo esté correctamente configurado y entender cómo interactuar con cada servicio.
8.2 Lista de Contenedores Activos
✅ Contenedores desplegados
| Contenedor | Estado | Puerto | Propósito |
|---|---|---|---|
| Laravel App | ✅ Activo | 8001 | PHP-FPM 8.4 |
| Laravel Nginx | ✅ Activo | 8080 | Servidor web |
| Laravel Postgres | ✅ Activo | 5432 | Base de datos |
| Laravel PgAdmin | ✅ Activo | 5050 | Gestor BD visual |
| Laravel LocalStack | ✅ Activo | 4566 | Emulador AWS |
| Laravel Vite | ✅ Activo | 5173 | Servidor frontend |
8.3 Probando el Servidor Web (Nginx)
🌐 Acceso a la aplicación
Abre tu navegador
Ve a
http://localhost:8080Verás uno de estos resultados:
🔴 Caso 1: "File not found"
❌ File not found
¿Por qué ocurre?
La carpeta
laravel/está vacíaNginx no encuentra el archivo
index.php
Solución: Configuraremos el proyecto Laravel en el siguiente tutorial.
🟡 Caso 2: Página con error de manifest.json
❌ Manifest.json not found
¿Por qué ocurre?
El proyecto Laravel está presente pero falta la compilación de assets
React/Vite no están configurados correctamente
Solución: Instalaremos dependencias de Node en breve.
🟢 Caso 3: ¡Éxito! 🎉
Si ves la página de Laravel o tu aplicación funcionando, ¡todo está perfecto!
8.4 Probando LocalStack (Emulador AWS)
🐳 Verificar que LocalStack esté funcionando
# Verificar el estado del contenedor docker ps | grep localstack
🔍 Probar el servicio S3
# Instalar AWS CLI (si no lo tienes) pip install awscli # Configurar credenciales locales aws configure --profile localstack AWS Access Key ID: test AWS Secret Access Key: test Default region: us-east-1 # Listar buckets (debería mostrar una lista vacía) aws --endpoint-url=http://localhost:4566 s3 ls
🌐 Acceso a la UI de LocalStack
http://localhost:4566 http://localhost:4566/_localstack/health
⚠️ Nota: La UI de LocalStack puede no ser muy estable. La mayoría de las operaciones las haremos desde la terminal.
8.5 Probando PostgreSQL
🐘 Conexión a la Base de Datos
Opción 1: Desde la terminal
# Acceder a PostgreSQL dentro del contenedor docker exec -it laravel_postgres psql -U laravel -d laravel # Verificar conexión \l # Listar bases de datos \dt # Listar tablas \q # Salir
Opción 2: Usando un cliente visual
Credenciales de conexión:
| Campo | Valor |
|---|---|
| Host | localhost |
| Puerto | 5432 |
| Base de datos | laravel |
| Usuario | laravel |
| Contraseña | secret |
📊 Clientes recomendados:
| Cliente | Plataforma | Precio |
|---|---|---|
| TablePlus | Win/Mac/Linux | Gratuito (limitado) |
| DBeaver | Win/Mac/Linux | Gratuito |
| pgAdmin | Web | Gratuito (ya lo tenemos) |
| DataGrip | Win/Mac/Linux | Pago |
8.6 Probando phpPgAdmin
🌐 Acceso a la interfaz web
Abre
http://localhost:5050Inicia sesión con:
| Campo | Valor |
|---|---|
admin@sample.com | |
| Contraseña | admin |
📝 Configurar conexión a PostgreSQL
Pasos:
Clic en "Agregar servidor"
Nombre:
Inertia(o el que prefieras)Ir a "Conexión"
| Campo | Valor |
|---|---|
| Host | postgres |
| Puerto | 5432 |
| Base de datos | laravel |
| Usuario | laravel |
| Contraseña | secret |
Clic en "Guardar"
✅ ¡Verás la base de datos laravel con sus tablas!
8.7 Probando el Contenedor PHP (Laravel App)
🔍 Comandos para verificar
# Verificar versión de PHP docker exec -it laravel_app php -v # Verificar extensiones instaladas docker exec -it laravel_app php -m # Verificar Composer docker exec -it laravel_app composer -V # Verificar estructura de carpetas docker exec -it laravel_app ls -la /var/www/html
Resultado esperado:
PHP 8.4.12 (cli) (built: Jan 14 2025 09:13:08) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.4.12, Copyright (c) Zend Technologies
8.8 Probando el Contenedor Vite
🔧 Verificación inicial
# Verificar que Node esté instalado docker exec -it laravel_vite node -v
⚠️ Posible error
Si obtienes un error como:
Error: Cannot find module ...
Causa: La carpeta node_modules no está instalada.
Solución temporal: No te preocupes, esto se arreglará cuando instalemos las dependencias en el siguiente tutorial.
🔄 Flujo de trabajo con Vite
El contenedor Vite te permite:
Hot Reload: Los cambios se reflejan automáticamente
Compilación en tiempo real: JSX/TSX se compila al instante
Puerto 5173: Servidor de desarrollo dedicado
8.9 Verificación de Volúmenes
📦 Volúmenes creados
# Listar volúmenes docker volume ls # Ver detalle de un volumen docker volume inspect pgdata docker volume inspect localstack_data
📂 Ubicación de los volúmenes
| Volumen | Contenido | Ubicación en host |
|---|---|---|
pgdata | Datos PostgreSQL | /var/lib/docker/volumes/pgdata |
localstack_data | Datos LocalStack | /var/lib/docker/volumes/localstack_data |
8.10 Comandos de Diagnóstico Rápidos
🛠️ Comprobación general
# Ver todos los contenedores activos docker compose ps # Ver estado de salud de todos docker inspect $(docker ps -q) | grep -E "Status|IPAddress" # Ver consumo de recursos docker stats # Ver logs combinados docker compose logs --tail=50
🔍 Verificar comunicación entre contenedores
# Desde el contenedor app, probar conexión a PostgreSQL docker exec laravel_app ping postgres # Desde el contenedor app, probar conexión a Nginx docker exec laravel_app ping nginx # Probar conexión a LocalStack docker exec laravel_app ping localstack
8.11 Resumen de Puertos y Accesos
🌐 Tabla de acceso rápida
| Servicio | URL | Estado esperado |
|---|---|---|
| Aplicación | http://localhost:8080 | 🟡 Pendiente de configurar |
| phpPgAdmin | http://localhost:5050 | 🟢 Conectado |
| LocalStack Health | http://localhost:4566/_localstack/health | 🟢 JSON de servicios |
| LocalStack UI | http://localhost:4566 | 🟡 Inestable |
| Vite | http://localhost:5173 | 🟡 Pendiente de dependencias |
8.12 Errores Comunes y Soluciones
❌ Error: "File not found" en Nginx
# Solución: Verificar que existe la carpeta laravel/ ls -la laravel/
❌ Error: "Connection refused" en PostgreSQL
# Solución: Verificar que Postgres esté corriendo docker compose logs postgres # Reiniciar si es necesario docker compose restart postgres
❌ Error: No se puede acceder a phpPgAdmin
# Verificar credenciales en docker-compose.yml # Las credenciales deben coincidir con las de PostgreSQL
❌ Error: Node no encontrado en contenedor Vite
# Este error se resuelve instalando node_modules # Lo haremos en el siguiente tutorial
8.13 Próximos Pasos
🚀 Lo que viene
Instalación de Laravel en el contenedor
Configuración de variables de entorno
Instalación de dependencias frontend
Ejecución de la aplicación por primera vez
📝 Ejercicio de la Clase
Para practicar y verificar tu entorno:
Accede a cada servicio desde tu navegador
Conéctate a PostgreSQL desde un cliente visual
Verifica las versiones de PHP y Node en los contenedores
Prueba la comunicación entre contenedores
Documenta cualquier error que encuentres
📚 Recursos Adicionales
¡Excelente! Has verificado que todos los contenedores funcionan. Continúa al Tutorial 9: Instalación y Configuración de Laravel.
Comentarios
Publicar un comentario