Una pila de Compose puede asociar un nuevo volumen con nombre vacío cuando el redepliegue cambia el nombre del volumen delimitado por el proyecto o no encuentra el volumen original.
Los datos antiguos aún pueden existir en otro volumen de Docker, mientras el servicio recreado monta un volumen recién generado en la misma ruta del contenedor. Entre los desencadenantes habituales se incluyen un cambio en el nombre de la pila o del proyecto, el cambio de nombre de una clave de volumen, la eliminación mediante un comando que borra volúmenes, la pérdida de una declaración externa, el despliegue mediante otro administrador o un nombre de volumen explícito que ahora se resuelve de forma diferente. Haga un inventario tanto del volumen montado como de los posibles volúmenes huérfanos antes de restaurar los datos o inicializar la aplicación.
Identifique el volumen exacto montado por el nuevo contenedor
Inspeccione los montajes del contenedor en ejecución y registre el nombre del volumen, el controlador, el punto de montaje, las etiquetas, la fecha de creación, el destino dentro del contenedor y el modo de lectura y escritura. Compárelos con los registros anteriores al redepliegue.
El comando docker volume inspect de Ubuntu muestra la identidad del volumen, lo que permite distinguir el nuevo volumen vacío de un volumen antiguo sin montar con una nomenclatura similar.
No copie datos al nuevo volumen hasta encontrar el original. Iniciar la aplicación puede crear una base de datos nueva y hacer que el destino parezca inicializado intencionadamente.
Compruebe si cambió el nombre del proyecto de Compose
Compare el nombre antiguo y el nuevo del proyecto, el nombre de la pila, el directorio de Compose, la opción -p, COMPOSE_PROJECT_NAME, el valor name: de nivel superior y el administrador de despliegue.
Docker explica que Compose normalmente delimita el volumen como nombre-del-proyecto más clave-del-volumen, a menos que se configure un nombre explícito o una búsqueda de volumen externo.
Por lo tanto, mover el mismo archivo de Compose a otro directorio puede crear un segundo proyecto y un segundo volumen, incluso cuando el servicio y las claves del volumen no hayan cambiado.
Verifique la configuración del nombre estable y del volumen externo
Compare la definición del volumen de nivel superior antes y después del redepliegue. Compruebe name:, external:, las opciones del controlador, las variables de interpolación y si existe el volumen esperado.
El tutorial de Docker Compose de Microsoft señala que los volúmenes con nombre persisten independientemente del reemplazo del contenedor, por lo que un estado nuevo y vacío normalmente significa que se asoció una identidad de volumen diferente o que se eliminó el volumen antiguo.
Marque un volumen como externo solo cuando su ciclo de vida se gestione intencionadamente fuera de la pila. Compose debería fallar claramente cuando falte un volumen externo, en lugar de crear silenciosamente un reemplazo.
Compruebe si una limpieza eliminó el volumen original
Revise los registros de despliegue, los scripts, las acciones de la interfaz, las tareas de limpieza y los comandos relacionados con la eliminación de volúmenes. Compare la fecha de creación del volumen con el evento de redepliegue.
Red Hat documenta que los volúmenes con nombre gestionados por contenedores tienen ubicaciones de almacenamiento independientes de las capas de escritura de los contenedores, por lo que eliminar un contenedor y eliminar su volumen con nombre son eventos de ciclo de vida diferentes.
Si el volumen original no está, detenga los inicios automáticos y restaure únicamente desde una copia de seguridad verificada. No suponga que un volumen de reemplazo vacío contiene una capa eliminada que pueda recuperarse.
Compare la identidad del administrador de la pila y el método de despliegue
Registre si la pila se inició mediante la CLI, Portainer, una tienda de aplicaciones NAS, un despliegue desde Git u otra herramienta de automatización. Compare el nombre de la pila y los valores del entorno almacenados por ese administrador.
Portainer requiere un nombre descriptivo de la pila durante el despliegue, y la identidad controlada por ese administrador puede diferir del nombre del proyecto basado en el directorio que utiliza un comando manual de Compose.
Por lo tanto, un inicio manual de emergencia puede crear recursos con otro prefijo de proyecto. Elija un único responsable del despliegue y documente los nombres de volumen resueltos que crea.
Descartar que los datos estén ocultos debajo del nuevo montaje del volumen
Detenga el contenedor e inspeccione la imagen o la ruta enlazada sin el volumen con nombre adjunto, en una prueba desechable. Determine si el inicio escribió datos en la capa del contenedor antes de montar el volumen.
El manual de montajes de Linux explica que un montaje oculta el contenido preexistente de un directorio, por lo que los datos pueden parecer desaparecidos cuando un nuevo volumen vacío cubre archivos creados en la imagen o en la capa de escritura.
No fusione a ciegas la capa oculta y el volumen persistente antiguo. Identifique qué estado es la fuente de verdad y utilice el método de recuperación compatible con la aplicación.
Vuelva a conectar el volumen original mediante una prueba controlada
Detenga la pila, haga una copia de seguridad de ambos volúmenes candidatos, conecte el original a un contenedor desechable o a una ruta de servicio temporal y verifique los archivos de la aplicación, la identidad de la base de datos, los permisos y propietarios y las marcas de tiempo.
La guía de ZimaSpace sobre cómo mover datos de contenedores sin romper los montajes ofrece el flujo de trabajo adyacente para la correspondencia de rutas; este artículo se centra en la identidad de los volúmenes con nombre delimitados por el proyecto.
El problema se resuelve cuando el volumen antiguo previsto se monta con un nombre explícito estable o como volumen externo y los redepliegues posteriores lo reutilizan sin crear otro candidato vacío.
Preguntas frecuentes
¿Un volumen con nombre vacío significa que se eliminaron los datos antiguos?
No necesariamente. El volumen antiguo aún puede existir con otro prefijo de proyecto o con otro nombre explícito, mientras el nuevo contenedor utiliza un volumen vacío diferente.
¿Cambiar el nombre de la carpeta de Compose puede crear un volumen nuevo?
Sí. Cuando no se fija un nombre de proyecto, Compose puede derivarlo del directorio del proyecto y crear recursos con prefijos diferentes.
¿Deberían marcarse como externos los volúmenes importantes?
Los volúmenes externos pueden impedir que la eliminación de la pila gestione su ciclo de vida, pero requieren una creación, nomenclatura, copia de seguridad y comprobaciones de despliegue deliberadas.
Soporte y Consejos
Más para leer

Guía de almacenamiento para grabaciones de TV en directo: capacidad, retención y limpieza
Mide grabaciones reales, reserva margen de seguridad, combina los límites de antigüedad y capacidad, y demuestra que el programa elegible más antiguo se elimina...

Flujo de recuperación de metadatos multimedia del hogar después de restaurar una base de datos
Protege el estado restaurado, verifica la identidad y las rutas de los archivos multimedia y, a continuación, repara las ilustraciones o coincidencias que falten...

Lista de compatibilidad del cliente Jellyfin para audio, vídeo y subtítulos
Prueba archivos representativos, una variable a la vez, y registra reproducción directa, remux, conversión de audio, transcodificación de video o fallo para cada cliente.

