sql >> Base de Datos >  >> RDS >> Mysql

El contenedor MySQL Docker no está guardando datos en una nueva imagen

Como otra respuesta, usted ha declarado que los volúmenes no se pueden comprometer y los contenedores secundarios heredan, de hecho, las definiciones de volumen de los padres. Por lo tanto, cualquier cambio en el volumen será descartado. Me gustaría agregar datos, como los archivos de la base de datos mysql, que siempre deben estar en volúmenes por varias razones y no debería intentar comprometerlos en su imagen.

  1. Si tiene que migrar contenedores, no existe una manera fácil de extraer datos de los contenedores si no está en un volumen.
  2. Si desea iniciar varios contenedores que comparten datos, debe tener datos en un volumen.
  3. Si desea cambiar la definición de su contenedor con, por ejemplo, nuevos volúmenes o puertos, debe eliminarlo y volver a crearlo. Si tiene datos en el contenedor, los perderá. (Consulte esta pregunta para ver un ejemplo de este caso).
  4. El sistema de archivos de unión es más lento que los sistemas de archivos normales, lo que ralentizará su aplicación o base de datos.

Entonces, ¿qué deberías hacer en su lugar?

  1. Utilice un contenedor de solo datos que se pueda vincular con cualquier instancia del contenedor de servicios. Luego puede usar volumes-from para obtener sus datos en el contenedor de servicios.
  2. Utilice un volumen montado en el host para que pueda reiniciar los contenedores y montar la misma ubicación en nuevos contenedores.