Mueve la fuente de datos del host al SSD manteniendo sin cambios la ruta de destino dentro de cada contenedor.
Una migración segura trata el mapa de montajes actual como un contrato de interfaz. Los contenedores, las bases de datos y las aplicaciones multimedia esperan rutas como /config, /data o /media, independientemente del disco que las proporcione. El proceso debe detener las escrituras, montar el SSD de forma predecible, copiar la propiedad y los metadatos, actualizar únicamente la fuente del host, verificar el nuevo montaje antes del arranque y conservar los datos originales hasta superar una prueba completa de restauración.
Inventaria todas las fuentes actuales y los destinos de los contenedores
Exporta el archivo de Compose o los datos de inspección de los contenedores y enumera cada montaje bind, volumen con nombre, montaje tmpfs, directorio de base de datos, caché, ruta de transcodificación y ubicación multimedia. Registra por separado la fuente del host y el destino del contenedor.
Una guía práctica para migrar volúmenes comienza por localizar los datos actuales y detener los contenedores antes de copiarlos a una nueva ubicación del disco. Este inventario evita que los datos de configuración queden en el disco del sistema.
Marca qué rutas contienen el estado principal, la caché que se puede reconstruir y los archivos multimedia de gran tamaño. No supongas que una carpeta llamada data contiene todo el estado persistente de la aplicación.
Monta el conjunto de SSD de forma predecible antes de iniciar Docker
Crea el sistema de archivos o conjunto del SSD, identifícalo mediante un UUID estable o el nombre del conjunto y móntalo en la ruta final del host. Verifica el espacio libre, las funciones esperadas del sistema de archivos y el acceso de escritura después de reiniciar.
Mover los datos de Docker a un almacenamiento externo puede fallar si el disco no está disponible o se monta en una ruta diferente durante el arranque. Un caso reciente relacionado con un SSD externo destaca cómo reubicar el almacenamiento de Docker cambia la dependencia respecto a la ruta de montaje de destino.
Configura el orden de inicio de los servicios o el comportamiento del automontaje para que Docker nunca cree un directorio alternativo vacío en el disco del sistema. Detén el proceso si el SSD no está montado exactamente en la ruta esperada.
Detén las aplicaciones que escriben y copia los datos conservando los metadatos
Detén la aplicación y todas las dependencias que puedan escribir en sus datos, incluidas las bases de datos, los indexadores, los descargadores y las tareas en segundo plano. En el caso de las bases de datos, utiliza un volcado coherente con la aplicación o un apagado limpio antes de copiar los archivos sin procesar.
Una conversación sobre contenedores de Synology recomienda mover un volumen administrado por Docker a un montaje bind solo después de identificar los datos del volumen y conservar su contenido en la nueva fuente del montaje bind.
Copia de forma recursiva conservando la propiedad, los permisos, las marcas de tiempo, los enlaces, las ACL y los atributos extendidos cuando sean compatibles. Ejecuta una comparación de prueba o una muestra de sumas de comprobación después de la copia y antes de cambiar Compose.
Cambia únicamente la ruta de la fuente del host
Mantén idéntico el destino del contenedor. Por ejemplo, cambia /oldpool/app:/config por /ssdpool/app:/config en lugar de enseñar a la aplicación una nueva ruta interna.
Los montajes bind exponen una ubicación exacta del host en una ruta estable dentro del contenedor. Una descripción general del almacenamiento explica que esta asignación directa resulta útil cuando los administradores necesitan controlar la ruta del lado del host.
Conservar el destino evita romper las bases de datos de la aplicación, las referencias de las bibliotecas, los scripts, los permisos y los valores de configuración que almacenan la ruta del lado del contenedor.
Restaura la propiedad, las etiquetas y la coherencia de la base de datos
Compara los valores numéricos de UID y GID esperados por la imagen con la propiedad del SSD. Restaura también las ACL, las etiquetas de SELinux, las autorizaciones de AppArmor y las opciones de montaje necesarias para el bloqueo o los archivos asignados en memoria.
Una guía de migración del almacenamiento de Docker en macOS señala que reubicar los datos de Docker requiere copiar la imagen de almacenamiento completa y confirmar después que el entorno de ejecución utiliza la nueva ubicación de almacenamiento. En los sistemas NAS con Linux, la comprobación equivalente consiste en confirmar que cada fuente configurada se resuelve en el SSD montado.
Inicia únicamente la base de datos y revisa los registros de recuperación antes de iniciar las aplicaciones dependientes. Si informa de daños o archivos faltantes, detén el proceso y vuelve a la copia original en lugar de permitir que las aplicaciones inicialicen una base de datos vacía.
Haz el cambio con una ruta de reversión y prueba todo el flujo de trabajo
Inicia la pila en el orden de sus dependencias y verifica la configuración, los registros de la base de datos, los permisos, las bibliotecas multimedia, las cargas, las descargas, las actualizaciones y la recreación de los contenedores. Comprueba que las nuevas escrituras llegan al SSD y que el disco del sistema deja de llenarse.
El artículo de ZimaSpace sobre un montaje bind de Docker que pasa a ser de solo lectura de repente explica el siguiente diagnóstico si la ruta migrada se monta, pero rechaza las escrituras.
Mantén los datos antiguos fuera de línea y sin cambios hasta que las copias de seguridad y una segunda recreación del contenedor funcionen correctamente desde la ruta del SSD. Elimina la fuente antigua solo después de que una prueba de reversión demuestre que puedes restaurar el archivo de Compose, los montajes, las bases de datos y el estado de la aplicación.
Soporte y Consejos
Más para leer

¿Por qué restaurar un volumen de Docker recrea el contenido de los archivos, pero elimina los atributos extendidos?
Un diagnóstico de restauración de volúmenes que abarca el inventario de atributos extendidos, las opciones de tar y Rsync, los espacios de nombres, la...

¿Por qué un contenedor en ejecución mantiene su antiguo límite de memoria después de cambiar el archivo de Compose?
Un diagnóstico del límite de memoria que abarca los cgroups activos, el reinicio frente a la recreación, los campos de Compose, los límites estrictos...

¿Por qué reiniciar un proxy inverso invalida todas las sesiones de una aplicación autoalojada?
Un diagnóstico de pérdida de sesión que abarca el alcance del reinicio, la propiedad de las cookies, la rotación de secretos, las sesiones respaldadas...

