6.3Buenas prácticas y trampas
Lo esencial en 30 segundos
- Verificar : tags inmutables en prod, imágenes slim non-root escaneadas, cero secretos en la imagen y en el git.
- Fiabilizar : volumen nombrado + prueba, red por aplicación, restart + healthcheck, Compose validado con config.
- Explotar : CI como única fábrica, copias rejugadas, proxy único TLS, logs con rotación — ocho síes = prod.
Hilo Idir — la regla pegada en la pared
Tras un trimestre, Idir pegó su regla en la pared en Argel : sano y probado primero, rápido después. Lo que más contó no fue una herramienta, sino tres hábitos — tags inmutables, volúmenes probados, Compose validado — y su mayor trampa evitada por poco : un latest desplegado un viernes por la noche, bloqueado antes de la prod.
Elige un solo hábito para afianzar en tu ritual, y luego pasa al siguiente.
El contrato de confianza
Un stack Docker sano depende de pocas reglas, aplicadas siempre. Aquí están, con sus inversos por desterrar.
✓ Por hacer
- Tags inmutables en prod, latest solo en dev.
- USER non-root sistemático, bases slim oficiales.
- Cero secretos en la imagen y en el git (run -e, secrets, .env no versionado).
- Volumen nombrado para los datos, test rm + relanzamiento.
- Una red por aplicación, base interna, solo el frontal publicado.
- restart + healthcheck en todo servicio durable.
- Compose versionado, validado con config, base + perfiles.
- CI como única fábrica (SHA+versión), caché activado.
- Copias automáticas + restauración probada.
- Reverse proxy único, TLS en prod, logs con rotación.
✗ Por evitar
- Desplegar latest en producción.
- Correr como root «para simplificar».
- Versionar .env y secretos, hacer COPY en la imagen.
- Guardar la base en la capa efímera.
- Publicar cada servicio y la base.
- depends_on sin condición ni retry.
- Líneas docker run recopiadas de memoria.
- Construir/subir a mano desde el portátil.
- No rejugar nunca una copia.
- Un puerto por app, sin proxy ni supervisión.
Guion listo para decir — verificar su stack antes de prod (30 s)
«¿Tags inmutables? ¿Non-root + scan? ¿Cero secretos en git? ¿Volumen probado rm + relanzamiento? ¿Restart + healthcheck? ¿Compose config OK? ¿CI como única fábrica? ¿Copia rejugada? Si un no, corrijo antes de prod.»
Modelo copiar-pegar — parrilla prod antes del despliegue
docker compose config
docker scout quickview mon-app:1.0
docker compose up -d --build
docker compose ps
docker compose logs -f api
TPE / presupuesto ajustado
Un solo hábito por trimestre basta : tags + volúmenes probados primero, el resto después.
PYME Argel
Adaptar los rituales a las puestas en prod : una franja copia rejugada y prueba down/up mantenida cada mes.
Remoto / híbrido
La disciplina n.º 1 a distancia : tag, config validada y prueba escritos, incluso para stacks pequeños.
Intercultural
Verificar los usos locales en lugar de suponer : un puerto o una ruta inhabitual debe alertar en todas partes.
Reto 48h — aplica mañana
Pasa tu stack por la criba : cero latest en prod, cero secretos en git, cero volúmenes no probados. Corrige la primera desviación encontrada.
- Conozco los 10 reflejos por hacer y las 10 trampas por evitar.
- Verifiqué mis 3 puntos críticos (tags, secretos, volúmenes probados).
- Hice el reto 48h o planifiqué su fecha.
Antes de su puesta en prod, ¿qué reflejo protege mejor a Idir?
Un buen explotador Docker no es quien despliega más rápido, sino aquel cuyos stacks están versionados y probados.