Introducción
Diseñar una estrategia de actualización de contenedores significa decidir cómo detectar nuevas versiones, evaluar su impacto, proteger los datos, probar los cambios, desplegar la nueva imagen y volver atrás si algo falla. Actualizar Docker no consiste simplemente en descargar una imagen más reciente y recrear un contenedor. Esa operación puede parecer sencilla, pero detrás pueden existir cambios de configuración, migraciones de base de datos, nuevas variables, permisos diferentes, cambios de puertos, incompatibilidades o modificaciones que impidan utilizar de nuevo la versión anterior.
La ventaja de los contenedores es que la aplicación puede recrearse desde una imagen conocida. Esa misma característica permite diseñar actualizaciones mucho más controladas que en instalaciones modificadas manualmente. Sin embargo, esa ventaja solo existe cuando la imagen utilizada está identificada, los datos persistentes están separados, el archivo Compose representa el despliegue real y existe una forma de comprobar que el servicio funciona después del cambio.
En una infraestructura pequeña aparecen dos errores opuestos. El primero es dejar servicios durante años sin actualizar por miedo a romperlos. El segundo es automatizar la descarga de nuevas imágenes y recrear contenedores inmediatamente sin revisar cambios. Ninguno de los dos extremos constituye una estrategia.
Una política útil debe equilibrar seguridad, continuidad, compatibilidad, tiempo de mantenimiento y capacidad de recuperación. No todos los contenedores tienen la misma importancia. Un entorno de pruebas puede recibir versiones nuevas con rapidez; una aplicación que contiene datos críticos necesita un procedimiento más conservador.
Este artículo desarrolla un método completo para actualizar contenedores de forma controlada. La gestión del catálogo de imágenes se explica en cómo organizar imágenes Docker propias y de terceros, mientras que la política del sistema anfitrión se desarrolla en cómo diseñar una política de actualizaciones para servidores Linux. Aquí el foco es el ciclo específico del servicio contenerizado.
Índice
- Qué se actualiza realmente en un servicio Docker
- Qué riesgos introduce una actualización
- Clasificar los proyectos por criticidad
- Partir de un inventario fiable
- Registrar la versión actualmente desplegada
- Cómo detectar nuevas versiones
- Evaluar una versión antes de desplegarla
- Revisar notas de versión y cambios incompatibles
- Revisar dependencias del proyecto
- Identificar qué datos pueden verse afectados
- Preparar una copia antes del cambio
- Probar la nueva versión fuera de producción
- Tratar con cuidado las migraciones de base de datos
- Actualizar la definición del proyecto
- Descargar la nueva imagen de forma controlada
- Elegir una ventana de mantenimiento
- Recrear contenedores con un procedimiento previsible
- Validar después de la actualización
- Diseñar un rollback real
- Por qué los datos condicionan la reversión
- Cuánto tiempo conservar la imagen anterior
- Qué partes se pueden automatizar
- Cuándo evitar actualizaciones automáticas completas
- Actualizaciones urgentes de seguridad
- Actualizar servicios compartidos
- Coordinar actualizaciones de contenedores y del host
- Registrar cada intervención
- Crear un calendario de revisión
- Procedimiento completo paso a paso
- Errores frecuentes
- Lista de comprobación
- Preguntas frecuentes
- Conclusión
Qué se actualiza realmente en un servicio Docker
En un despliegue contenerizado pueden cambiar varias capas distintas:
- la imagen de aplicación;
- la imagen base;
- dependencias incluidas en la imagen;
- el archivo Compose;
- variables de entorno;
- configuración montada;
- esquema de base de datos;
- volúmenes o rutas utilizadas;
- puertos;
- redes;
- permisos;
- servicios auxiliares.
Por eso, decir “actualizar el contenedor” simplifica demasiado. Normalmente el contenedor antiguo se elimina o recrea a partir de una imagen nueva, pero el verdadero cambio afecta al conjunto del proyecto.
Contenedor e imagen tienen ciclos distintos
El contenedor es una instancia. La imagen es el artefacto versionado. Una estrategia correcta se centra en controlar qué imagen y configuración crean la nueva instancia.
Qué riesgos introduce una actualización
Una nueva versión puede corregir vulnerabilidades y errores, pero también introducir cambios que afecten al funcionamiento.
Los riesgos principales son:
- la aplicación no arranca;
- cambia una variable obligatoria;
- desaparece una opción de configuración;
- cambia el formato de datos;
- se modifica el esquema de la base de datos;
- cambia el usuario interno del contenedor;
- aparecen problemas de permisos;
- una integración deja de ser compatible;
- el nuevo contenedor consume más recursos;
- el rollback deja de ser trivial.
La estrategia debe reducir estos riesgos sin convertir cada pequeña actualización en un proyecto enorme.
Clasificar los proyectos por criticidad
No todos los servicios necesitan el mismo nivel de control.
| Tipo | Impacto de fallo | Tratamiento |
|---|---|---|
| Crítico | Interrumpe una función principal | Pruebas, copia, ventana y rollback completos |
| Importante | Afecta a una actividad relevante | Prueba previa y recuperación preparada |
| Auxiliar | Existe alternativa temporal | Proceso simplificado |
| Pruebas | Sin impacto productivo | Puede recibir versiones antes |
La criticidad también determina cuánto tiempo puede esperarse para aplicar una versión nueva y cuánto esfuerzo merece la validación.
Partir de un inventario fiable
No puede actualizarse con control un proyecto que no está inventariado.
Antes del cambio conviene conocer:
- nombre del proyecto;
- servicios incluidos;
- imágenes utilizadas;
- versión actual;
- volúmenes;
- base de datos;
- variables;
- secretos;
- redes;
- puertos;
- dependencias;
- copias;
- responsable;
- procedimiento de validación.
La estructura puede apoyarse en cómo documentar una infraestructura basada en Docker.
Registrar la versión actualmente desplegada
Una actualización necesita un punto de partida conocido.
No depender únicamente de latest
Si la definición utiliza una etiqueta móvil, puede resultar difícil saber qué artefacto concreto estaba ejecutándose antes.
Registrar tag o digest
La referencia utilizada debe poder relacionarse con el despliegue actual.
Guardar la definición vigente
El archivo Compose y configuración asociada deben estar versionados o conservados en una fuente oficial.
El control del catálogo de imágenes se desarrolla en cómo organizar imágenes Docker propias y de terceros.
Cómo detectar nuevas versiones
La plataforma necesita un mecanismo para saber que existe una versión nueva.
Puede basarse en:
- notificaciones del proveedor;
- revisión periódica del repositorio;
- avisos del registro;
- herramientas de monitorización de versiones;
- boletines de seguridad;
- revisión manual programada.
Detectar no significa desplegar
Una notificación de nueva versión debe iniciar una evaluación, no necesariamente una actualización inmediata.
Evaluar una versión antes de desplegarla
Antes de cambiar producción conviene clasificar la nueva release.
Corrección menor
Puede tener riesgo limitado si no cambia configuración ni datos.
Versión funcional
Introduce nuevas características y puede necesitar más pruebas.
Versión mayor
Puede incluir incompatibilidades, cambios de formato o nuevas dependencias.
Actualización de seguridad
Puede requerir prioridad mayor, especialmente si corrige una vulnerabilidad explotable en un servicio expuesto.
La clasificación permite decidir urgencia y profundidad de la prueba.
Revisar notas de versión y cambios incompatibles
Las notas de versión son una de las fuentes más importantes antes de actualizar.
Conviene buscar:
- breaking changes;
- variables nuevas o eliminadas;
- cambios en rutas;
- cambios de permisos;
- nuevos requisitos mínimos;
- cambios de base de datos;
- dependencias obsoletas;
- cambios de puertos;
- procedimientos especiales de migración;
- versiones intermedias obligatorias.
No saltar versiones sin comprobarlo
Algunas aplicaciones no permiten pasar directamente desde una versión muy antigua a la última.
Revisar dependencias del proyecto
Un contenedor raramente trabaja aislado.
La actualización puede afectar a:
- base de datos;
- proxy;
- cache;
- worker;
- API externa;
- almacenamiento;
- autenticación;
- otros proyectos.
Compatibilidad entre versiones
Una nueva aplicación puede requerir una versión mínima de la base de datos o dejar de admitir una dependencia antigua.
No actualizar dos cosas a la vez sin necesidad
Cuando sea posible, conviene separar cambios para facilitar diagnóstico. Si se actualizan aplicación, base de datos, proxy y host en la misma ventana, será más difícil saber qué provocó un fallo.
Identificar qué datos pueden verse afectados
Antes del cambio debe saberse qué estado persistente utiliza la aplicación.
- base de datos;
- volúmenes;
- uploads;
- configuración;
- certificados;
- colas persistentes;
- otros archivos generados.
El contenedor puede recrearse; los datos no
La estrategia de actualización debe tratar estos elementos por separado.
Preparar una copia antes del cambio
Las actualizaciones que pueden modificar datos necesitan una copia reciente y utilizable.
Qué proteger
- base de datos;
- volúmenes relevantes;
- configuración local;
- archivo Compose;
- versión anterior;
- información necesaria para reconstruir.
Una copia no sirve si no puede restaurarse
Para proyectos importantes, el procedimiento debe haber sido probado antes de depender de él durante una actualización.
No copiar indiscriminadamente
Logs y cachés regenerables pueden no necesitar el mismo tratamiento que los datos de negocio.
Probar la nueva versión fuera de producción
Un entorno de pruebas reduce el riesgo de descubrir incompatibilidades directamente sobre datos reales.
La prueba debe parecerse al entorno real
Debe reproducir los elementos relevantes:
- versión de Docker;
- Compose;
- variables;
- tipo de base de datos;
- redes;
- volúmenes;
- dependencias principales.
No hace falta clonar toda producción
Para una pequeña infraestructura, una prueba funcional proporcional puede ser suficiente.
Qué validar
- arranque;
- logs;
- health checks;
- acceso;
- lectura y escritura de datos;
- funciones críticas;
- integraciones;
- consumo de recursos.
Tratar con cuidado las migraciones de base de datos
Las migraciones son uno de los puntos que más condicionan el rollback.
Cambio reversible
Si la nueva versión utiliza el mismo esquema, volver a la imagen anterior puede ser relativamente sencillo.
Cambio irreversible o incompatible
Si la nueva aplicación modifica tablas, formatos o datos, la versión anterior puede no funcionar con el nuevo estado.
Antes de aplicar una migración
- leer documentación;
- hacer copia consistente;
- comprobar espacio disponible;
- medir duración en pruebas;
- conocer el procedimiento de vuelta atrás.
Actualizar la imagen y revertir la imagen no siempre equivale a revertir la aplicación.
Actualizar la definición del proyecto
La referencia de la nueva versión debe quedar incorporada a la fuente oficial del proyecto.
Puede implicar:
- nuevo tag;
- nuevo digest;
- variables adicionales;
- nuevos mounts;
- cambios en health checks;
- nuevos puertos;
- modificaciones de dependencias.
Evitar cambios solo en producción
Editar directamente el servidor sin actualizar la fuente oficial provoca que la siguiente reconstrucción pierda el cambio.
Descargar la nueva imagen de forma controlada
La descarga debe corresponder a la referencia que se ha evaluado.
Verificar disponibilidad
Conviene obtener la imagen antes de iniciar la ventana si el procedimiento lo permite.
No reemplazar la referencia sin registrarlo
La imagen nueva debe quedar relacionada con la intervención.
Conservar la anterior temporalmente
Puede ser útil para rollback mientras se valida la nueva versión.
Elegir una ventana de mantenimiento
La ventana debe considerar:
- usuarios afectados;
- duración esperada;
- tiempo de rollback;
- duración de migraciones;
- personas disponibles;
- dependencias externas;
- periodo de observación posterior.
No empezar sin tiempo para volver atrás
Una intervención que termina justo antes de un periodo crítico deja poco margen para diagnosticar.
Recrear contenedores con un procedimiento previsible
Un despliegue controlado suele seguir una secuencia conocida:
- confirmar copia;
- confirmar referencia nueva;
- detener o recrear según el proyecto;
- levantar servicios;
- esperar inicialización;
- revisar estado;
- revisar logs;
- ejecutar pruebas funcionales.
No modificar manualmente el nuevo contenedor
Si necesita un cambio para funcionar, ese cambio debe incorporarse a la definición o imagen correspondiente.
Validar después de la actualización
Un contenedor en estado running no demuestra que la actualización haya sido correcta.
Validación técnica
- contenedores activos;
- health checks;
- logs sin errores críticos;
- redes;
- volúmenes;
- puertos;
- uso de CPU y memoria.
Validación funcional
- login;
- consulta de datos;
- escritura;
- tarea crítica;
- integración;
- proceso programado;
- operación principal del servicio.
Periodo de observación
Algunos problemas aparecen después de minutos u horas. Conviene observar logs, recursos y tareas periódicas antes de considerar cerrada la intervención.
Diseñar un rollback real
“Volver a la versión anterior” debe describirse con pasos concretos.
Un plan puede incluir:
- detener la versión nueva;
- restaurar la referencia anterior;
- restaurar configuración si cambió;
- restaurar datos si la nueva versión los modificó;
- recrear contenedores;
- validar servicio;
- registrar el incidente.
Criterio de decisión
Conviene definir de antemano qué fallos obligan a revertir y cuáles pueden corregirse sin volver atrás.
Por qué los datos condicionan la reversión
El rollback más sencillo existe cuando la actualización solo cambia la imagen.
Si se han modificado:
- esquema de base de datos;
- formato de archivos;
- índices;
- metadatos;
- estado persistente;
puede ser necesario restaurar una copia, no solo ejecutar la imagen anterior.
RPO y rollback
Restaurar una copia anterior puede implicar perder cambios realizados después de ella. Este impacto debe considerarse antes de actualizar.
Cuánto tiempo conservar la imagen anterior
No existe una regla universal.
Puede ser razonable conservar temporalmente:
- versión actual;
- versión inmediatamente anterior;
- otra release necesaria para recuperación cuando esté justificado.
Después del periodo de observación, las imágenes obsoletas pueden retirarse según la política definida en cómo organizar imágenes Docker propias y de terceros.
Qué partes se pueden automatizar
La automatización puede reducir trabajo repetitivo sin eliminar el control.
Puede automatizarse:
- detección de nuevas versiones;
- alertas;
- descarga de imágenes;
- ejecución de pruebas;
- creación de copias;
- despliegue en pruebas;
- health checks;
- registro de resultados.
Automatizar una decisión no es lo mismo que automatizar una ejecución
Una herramienta puede avisar de una nueva release sin desplegarla automáticamente.
Cuándo evitar actualizaciones automáticas completas
Actualizar automáticamente cada vez que cambia una imagen puede resultar cómodo, pero elimina parte de la revisión previa.
Conviene ser especialmente prudente cuando el servicio:
- es crítico;
- gestiona datos importantes;
- ejecuta migraciones;
- depende de integraciones;
- utiliza tags móviles;
- no tiene entorno de pruebas;
- no dispone de rollback verificado.
Automatización selectiva
Puede ser aceptable para servicios auxiliares de bajo riesgo si existe monitorización y recuperación sencilla.
Actualizaciones urgentes de seguridad
Una vulnerabilidad crítica puede justificar acelerar el proceso.
Priorizar según exposición
Una vulnerabilidad en un componente accesible desde Internet puede requerir más urgencia que otra en una función no utilizada.
No eliminar todas las comprobaciones
La urgencia puede acortar plazos, pero sigue siendo necesario proteger datos y validar funcionamiento.
Medidas temporales
Si una actualización inmediata no es viable, puede ser necesario reducir exposición, restringir acceso o desactivar temporalmente una función vulnerable hasta poder desplegar la corrección.
Actualizar servicios compartidos
Proxy, monitorización, bases de datos o servicios comunes pueden afectar a varios proyectos.
Evaluar impacto transversal
Antes de actualizar hay que saber qué aplicaciones dependen del componente.
Pruebas de compatibilidad
Una nueva versión del proxy o motor de base de datos puede seguir arrancando pero afectar a servicios que dependen de él.
Orden de cambios
Cuando varios componentes necesitan actualizarse, conviene establecer una secuencia y comprobar cada etapa.
Coordinar actualizaciones de contenedores y del host
Docker no elimina el mantenimiento del sistema operativo.
El host tiene su propio ciclo de:
- kernel;
- Docker Engine;
- paquetes;
- drivers;
- seguridad;
- reinicios.
Evitar cambios masivos simultáneos
Actualizar host, Docker Engine y todas las aplicaciones en una sola intervención aumenta el número de variables.
La política general del anfitrión puede organizarse siguiendo cómo diseñar una política de actualizaciones para servidores Linux.
Registrar cada intervención
Después de la actualización conviene registrar:
- fecha;
- proyecto;
- versión anterior;
- versión nueva;
- copia realizada;
- cambios de configuración;
- migraciones;
- resultado de pruebas;
- incidencias;
- rollback si hubo;
- persona responsable.
El registro debe ser útil
No hace falta guardar cada comando, sino los hechos necesarios para entender qué cambió y cómo resultó.
Crear un calendario de revisión
Una estrategia necesita periodicidad.
Semanal o quincenal
Revisar avisos urgentes y vulnerabilidades relevantes.
Mensual
Revisar nuevas versiones de aplicaciones importantes, imágenes base y dependencias.
Trimestral
Revisar proyectos olvidados, versiones sin soporte, automatizaciones y calidad de los procedimientos de rollback.
Después de incidentes
Actualizar documentación y corregir el proceso que haya fallado.
La frecuencia debe ajustarse a criticidad y ritmo de cambio.
Procedimiento completo paso a paso
-
Identificar el proyecto.
Confirmar finalidad, criticidad y responsable.
-
Registrar la versión actual.
Anotar imagen y configuración desplegadas.
-
Identificar la nueva versión.
Confirmar tag, digest y procedencia.
-
Leer cambios.
Buscar incompatibilidades, nuevas variables y migraciones.
-
Revisar dependencias.
Base de datos, proxy, almacenamiento, APIs y servicios compartidos.
-
Preparar copia.
Proteger datos y configuración que puedan verse afectados.
-
Probar fuera de producción.
Desplegar y validar la nueva versión.
-
Definir rollback.
Establecer versión anterior y tratamiento de datos.
-
Elegir ventana.
Reservar tiempo para cambio, validación y reversión.
-
Actualizar definición.
Modificar la fuente oficial.
-
Descargar imagen.
Confirmar que está disponible antes de comenzar.
-
Recrear servicios.
Seguir el procedimiento del proyecto.
-
Validar técnicamente.
Estado, logs, recursos, redes y health checks.
-
Validar funcionalmente.
Comprobar operaciones reales.
-
Observar.
Monitorizar durante un periodo adecuado.
-
Registrar el resultado.
Actualizar historial, documentación e inventario.
Errores frecuentes
Actualizar directamente desde latest
Puede introducir un contenido diferente sin saber exactamente qué versión se está desplegando.
Actualizar sin leer notas de versión
Oculta cambios incompatibles y migraciones.
No hacer copia antes de una migración
Puede impedir recuperar el estado anterior.
Creer que conservar la imagen anterior garantiza rollback
Los datos pueden haber cambiado de forma incompatible.
Actualizar varios componentes a la vez
Complica diagnóstico y reversión.
Probar únicamente que el contenedor arranca
No demuestra que la aplicación funcione.
No revisar logs después
Algunos errores permanecen ocultos hasta que se ejecuta una función concreta.
No dejar tiempo de observación
Puede darse por cerrada una intervención antes de que aparezcan problemas.
Automatizar todo sin clasificación de riesgo
Trata igual un servicio auxiliar y uno crítico.
No registrar la versión anterior
Hace más difícil revertir.
No actualizar durante años
Acumula saltos de versión y dependencias obsoletas.
Actualizar host y aplicaciones simultáneamente
Aumenta el número de variables que pueden fallar.
No comprobar espacio libre
Descargas, migraciones y copias pueden requerir capacidad temporal adicional.
Conservar indefinidamente todas las imágenes
Genera almacenamiento residual y dificulta mantener un catálogo claro.
Lista de comprobación
- ¿El proyecto está inventariado?
- ¿Se conoce su criticidad?
- ¿Está registrada la versión actual?
- ¿La nueva imagen tiene procedencia conocida?
- ¿Se han revisado las notas de versión?
- ¿Se han identificado breaking changes?
- ¿Se han revisado nuevas variables?
- ¿Se han revisado cambios de permisos?
- ¿Se han revisado dependencias?
- ¿Se sabe si hay migraciones de base de datos?
- ¿Se conocen los datos persistentes afectados?
- ¿Existe una copia reciente?
- ¿La restauración ha sido probada?
- ¿La nueva versión se ha probado fuera de producción?
- ¿Se ha definido el criterio de rollback?
- ¿Se sabe si el rollback requiere restaurar datos?
- ¿Existe tiempo suficiente para revertir?
- ¿La definición Compose se ha actualizado en la fuente oficial?
- ¿La nueva imagen está descargada o disponible?
- ¿Se ha elegido una ventana adecuada?
- ¿Se han ejecutado pruebas técnicas?
- ¿Se han ejecutado pruebas funcionales?
- ¿Se han revisado logs?
- ¿Se ha observado consumo de recursos?
- ¿Se ha mantenido temporalmente la versión anterior?
- ¿Se ha documentado el resultado?
- ¿Se ha actualizado el inventario?
Preguntas frecuentes
¿Actualizar un contenedor significa reiniciarlo?
No. Reiniciar mantiene normalmente la misma imagen. Actualizar implica desplegar una nueva imagen o una nueva definición y recrear la instancia cuando sea necesario.
¿Debo actualizar siempre que aparece una imagen nueva?
No necesariamente. La nueva versión debe evaluarse según seguridad, compatibilidad, criticidad y soporte. Detectar una release no obliga a desplegarla inmediatamente.
¿Es buena idea actualizar automáticamente con Watchtower u otra herramienta similar?
La automatización puede ser útil, pero en servicios importantes conviene separar detección y despliegue. Una actualización automática completa puede aplicar cambios sin revisar migraciones, compatibilidad o rollback.
¿Cómo vuelvo a la versión anterior?
Normalmente se restaura la referencia anterior de la imagen y se recrea el servicio. Sin embargo, si la versión nueva ha modificado datos o base de datos, puede ser necesario restaurar también una copia.
¿Conservar la imagen anterior es suficiente para recuperar?
No siempre. La imagen solo representa la aplicación. Los datos persistentes, configuración y secretos también forman parte del estado necesario para recuperar el servicio.
¿Hay que detener el servicio para actualizar?
Depende de la aplicación y arquitectura. En muchos despliegues pequeños existe una breve interrupción durante la recreación. Si se necesita continuidad, la arquitectura debe estar preparada específicamente para reducir o evitar esa parada.
¿Qué debo probar después de actualizar?
Además del estado del contenedor, hay que comprobar logs, health checks, acceso, lectura y escritura de datos, integraciones y las funciones principales del servicio.
¿Debo actualizar también la base de datos?
Solo cuando exista una necesidad o requisito de compatibilidad. Actualizar aplicación y base de datos simultáneamente sin necesidad aumenta el riesgo y dificulta diagnosticar problemas.
¿Cuánto tiempo debo conservar la imagen anterior?
Al menos durante el periodo de validación y mientras siga formando parte del plan de rollback. Después puede retirarse según la política de retención.
¿Qué pasa si no actualizo durante mucho tiempo?
Pueden acumularse vulnerabilidades, versiones sin soporte y saltos de compatibilidad. Las actualizaciones pequeñas y regulares suelen ser más controlables que una migración forzada desde una versión muy antigua.
¿Debo actualizar todos los contenedores el mismo día?
No. Los proyectos independientes pueden tener calendarios diferentes. Separar intervenciones reduce impacto y facilita saber qué cambio produjo una incidencia.
¿Cuál es la señal de que una estrategia de actualización funciona?
Que cada cambio parte de una versión conocida, se prueba de forma proporcionada, protege los datos, dispone de una reversión real y termina con una validación y un registro claros.
Conclusión
Diseñar una estrategia de actualización de contenedores significa convertir una tarea aparentemente sencilla en un proceso controlado y repetible.
La actualización empieza antes de descargar una imagen. Hay que conocer la versión actual, identificar la nueva release, leer sus cambios, revisar dependencias, entender qué datos puede modificar y preparar una copia utilizable.
El principal valor de Docker durante una actualización es que la aplicación puede recrearse desde una imagen conocida. Pero esa ventaja desaparece si se utilizan etiquetas ambiguas, se realizan cambios manuales o no se sabe qué estado persistente necesita el servicio.
Las pruebas fuera de producción permiten detectar incompatibilidades, mientras que una ventana de mantenimiento adecuada deja margen para validar y volver atrás. La comprobación posterior debe incluir tanto estado técnico como operaciones funcionales reales.
El rollback merece especial atención. Volver a una imagen anterior puede ser fácil; volver a unos datos anteriores puede no serlo. Las migraciones de base de datos obligan a tratar imagen y estado persistente como dos piezas distintas de la recuperación.
La automatización puede ayudar a detectar versiones, descargar imágenes, ejecutar pruebas y recopilar resultados, pero no debe eliminar el criterio de riesgo. Un servicio auxiliar y uno crítico no necesitan el mismo nivel de intervención.
Una plataforma Docker mantenible no es la que actualiza todo automáticamente ni la que evita cualquier cambio. Es la que puede aplicar nuevas versiones con una secuencia conocida, minimizar el riesgo, comprobar el resultado y recuperar el estado anterior cuando la actualización no funciona como se esperaba.
