6.3 · Buenas prácticas y trampas

Nivel 6 · En la práctica

6.3Buenas prácticas y trampas

Objetivo: afianzar los 10 reflejos que separan un uso sano de un uso frágil.
Tiempo estimado: 10 min · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

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.
Error frecuente de interpretación: «marcar todas las casillas cada día». No. Son hábitos por instalar uno por uno : elige uno (p. ej. tags inmutables en todas partes), afiánzalo en tu ritual, y luego pasa al siguiente.
Versión en texto del esquema (SEO / lectores de pantalla / traducción): Equilibrio por mantener : 1) Lado imagen — tags inmutables, slim non-root, scan, cero secretos, CI como única fábrica con caché. 2) Lado stack — volumen nombrado probado, red por aplicación, restart + healthcheck, Compose versionado validado con config, base + perfiles. 3) Lado explotación — copias rejugadas, proxy único TLS, logs con rotación, down/up probado sin pérdida. Lección : un stack sano es primero versionado, probado y testeado — la rapidez viene después.

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.

Prudencia: Recordatorio genérico : regla de oro — un stack sano es primero versionado y probado ; nunca despliegues latest en prod, nunca versiones .env ni secretos, nunca guardes la base en efímero, y rejuega cada copia antes de creerla.

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.

Lista de salida de la sección
  • 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.
Autoevaluación 1-5 : ¿constancia de los buenos reflejos?¿trampas evitadas?
Comprueba tu comprensión

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.