Recuperar un despliegue de contenedores tras un conflicto de nombres
Una imagen puede compilarse correctamente mientras el despliegue falla al recrear el contenedor. Encontramos conflictos de nombres repetidos después de un despliegue interrumpido. La lección fue identificar el recurso que bloqueaba el siguiente intento y limitar la limpieza a los recursos de ese despliegue.
Identifique el recurso en conflicto
Un contenedor residual puede conservar un nombre que el siguiente despliegue necesita. Inspeccione su identidad, las etiquetas de proyecto y servicio de Compose, su estado, sus volúmenes y su relación con la versión actual. Un nombre parecido no demuestra que sea seguro eliminarlo.
Qué cubre la limpieza de huérfanos
Docker documenta --remove-orphans como la eliminación de contenedores cuyos servicios no aparecen en el archivo Compose. Puede ayudar si ese es el origen del conflicto. No garantiza eliminar todo contenedor renombrado o interrumpido, especialmente si aún pertenece a un servicio definido. Compruebe el comportamiento de la versión instalada.
Planifique la recuperación
- Confirme a qué despliegue pertenece el recurso y si atiende tráfico.
- Proteja los datos necesarios y establezca una vía de recuperación antes de limpiar.
- Elimine únicamente el recurso confirmado como obsoleto, siguiendo el procedimiento de despliegue.
- Reintente el despliegue y verifique la versión en ejecución y las comprobaciones públicas de estado.
- Reproduzca la interrupción en un entorno de pruebas antes de automatizar la recuperación.
El despliegue debe indicar si instaló la nueva versión, restauró la anterior o requiere atención. Una compilación correcta no responde a esa pregunta.
Referencia: Docker Compose up.