@@ -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