Skip to content

Commit 7999029

Browse files
committed
Remove outdated sections on Docker container configurations and demos for improved clarity and relevance
1 parent 6171b58 commit 7999029

1 file changed

Lines changed: 0 additions & 125 deletions

File tree

01-contenedores/contenedores-ii/README.md

Lines changed: 0 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -595,128 +595,3 @@ docker build -t <nombre-imagen>:<tag> . # Construir imagen desde Dockerfile
595595
```
596596

597597
---
598-
599-
## � Conceptos fundamentales que necesitas conocer
600-
601-
Antes de lanzar contenedores con configuraciones avanzadas, es importante entender los parámetros que hemos visto en los ejemplos anteriores.
602-
603-
### 🌍 **Variables de entorno (-e)**
604-
605-
Las variables de entorno permiten configurar aplicaciones sin modificar la imagen. Son muy comunes en imágenes de LinuxServer y otras:
606-
607-
```bash
608-
# Ejemplos de variables típicas
609-
-e PUID=1000 # User ID - para permisos de archivos
610-
-e PGID=1000 # Group ID - para permisos de grupo
611-
-e TZ=Europe/Madrid # Timezone - zona horaria del contenedor
612-
-e PASSWORD=lemoncode # Configuración específica de la app
613-
```
614-
615-
**🔍 Variables más comunes:**
616-
- `TZ`: Zona horaria (America/New_York, Europe/London, etc.)
617-
- `PUID/PGID`: IDs de usuario/grupo para manejo de permisos
618-
- `PASSWORD/USER`: Credenciales de acceso
619-
- `DB_*`: Configuración de base de datos
620-
- `APP_*`: Configuraciones específicas de la aplicación
621-
622-
### 🔄 **Políticas de reinicio (--restart)**
623-
624-
Controlan qué hace Docker cuando el contenedor se detiene:
625-
626-
```bash
627-
--restart=no # No reiniciar nunca (por defecto)
628-
--restart=always # Reiniciar siempre
629-
--restart=unless-stopped # Reiniciar a menos que se pare manualmente
630-
--restart=on-failure # Solo reiniciar si falla
631-
--restart=on-failure:3 # Reiniciar máximo 3 veces si falla
632-
```
633-
634-
**💡 Recomendación**: Usar `unless-stopped` para servicios que quieres que arranquen con el sistema pero puedas parar manualmente.
635-
636-
### **Opciones de seguridad (--security-opt)**
637-
638-
Configuran políticas de seguridad del contenedor:
639-
640-
```bash
641-
--security-opt seccomp=unconfined # Deshabilita el filtro de llamadas del sistema
642-
--security-opt apparmor=unconfined # Deshabilita AppArmor
643-
--security-opt no-new-privileges # Evita escalada de privilegios
644-
```
645-
646-
**⚠️ Importante**: `seccomp=unconfined` se usa para apps gráficas que necesitan acceso completo al sistema, pero reduce la seguridad.
647-
648-
### 🧠 **Memoria compartida (--shm-size)**
649-
650-
Algunos navegadores y apps gráficas necesitan más memoria compartida:
651-
652-
```bash
653-
--shm-size="1gb" # Asigna 1GB de memoria compartida
654-
--shm-size="512m" # Asigna 512MB
655-
```
656-
657-
**🎯 Uso típico**: Firefox, Chrome, aplicaciones que renderizan gráficos.
658-
659-
### 🎭 **Privilegios (--privileged)**
660-
661-
Da acceso completo al sistema host al contenedor:
662-
663-
```bash
664-
--privileged # Acceso completo (usar con precaución)
665-
```
666-
667-
**🚨 Solo usar cuando sea absolutamente necesario** (ej: Home Assistant para acceso a hardware USB).
668-
669-
## 🚀 Demos adicionales sugeridas
670-
671-
### 1. 📊 **Demo: Análisis de seguridad con Trivy**
672-
```bash
673-
# Instalar Trivy para análisis de vulnerabilidades
674-
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
675-
aquasec/trivy:latest image nginx:latest
676-
677-
# Generar reporte en formato JSON
678-
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
679-
-v $(pwd):/output aquasec/trivy:latest image \
680-
--format json --output /output/nginx-report.json nginx:latest
681-
```
682-
683-
### 2. � **Demo: Monitorización de uso de imágenes**
684-
```bash
685-
# Script para analizar uso de espacio por imágenes
686-
docker system df -v
687-
688-
# Identificar imágenes huérfanas (dangling)
689-
docker images --filter "dangling=true"
690-
691-
# Ver historial de una imagen
692-
docker history nginx:latest --no-trunc
693-
```
694-
695-
### 3. 🌊 **Demo: Auto-actualización con Watchtower**
696-
```bash
697-
# Auto-actualización de contenedores con Watchtower
698-
docker run -d \
699-
--name watchtower \
700-
-v /var/run/docker.sock:/var/run/docker.sock \
701-
containrrr/watchtower \
702-
--schedule "0 0 4 * * *" \
703-
--cleanup
704-
705-
# Etiquetar contenedores para auto-update
706-
docker run -d --label=com.centurylinklabs.watchtower.enable=true nginx:latest
707-
```
708-
709-
### 🎯 **Próximos pasos recomendados**
710-
1. **Día 3**: Dockerfile y construcción de imágenes desde cero
711-
2. **Día 4**: Docker Compose para aplicaciones multi-contenedor
712-
3. **Día 5**: Networking avanzado y volumes persistentes
713-
4. **Día 6**: Seguridad y mejores prácticas en producción
714-
715-
### 📚 **Recursos adicionales**
716-
- [Docker Official Images](https://hub.docker.com/search?q=&type=image&image_filter=official)
717-
- [Awesome Docker](https://github.com/veggiemonk/awesome-docker)
718-
- [Docker Security Best Practices](https://docs.docker.com/engine/security/)
719-
- [Container Structure Tests](https://github.com/GoogleContainerTools/container-structure-test)
720-
721-
---
722-
*💡 **Tip profesional**: Siempre revisa el Dockerfile de las imágenes oficiales para aprender mejores prácticas y entender cómo están construidas.*

0 commit comments

Comments
 (0)