0
Backup de Bases MySql en Docker

Open 3 Respuestas 253 Views
Necesito hacer un backup automatizado de bases de datos, estoy corriendo un crontab con un docker exec apuntando al id del contenedor y mysql dump. El problema es que cuando el servicio de docker se actualiza, el id y el nombre del contenedor cambian. Intente darle nombre al contenedor agregando al compose la linea container_name dentro del servicio, pero no es soportado por la version 3 de compose. En fin, no se que hacer para automatizar los backups. Alguien que me pueda ayudar, se lo agradezco.

3 Respuestas

1
porque no usas el cliente mysql en el host donde corre el container para conectarte y hacer el backup?
respondido por ezq (490 puntos) Dic 24, 2019
1Comentarios
comentado por mrslash88 (150 puntos) Dic 24, 2019
Y como harías vos para automatizarlo? Para dar un poco más de contexto, el contenedor está corriendo dentro de un cluster con 3 nodos, y no expone puertos hacia afuera
1
Y si el dump lo corres desde otro host conectandote por red? con algo como:

mysqldump -h db_server-hostname -u usuario db_name

 

Saludos
respondido por luigibalzani (10,670 puntos) Dic 26, 2019
3Comentarios
comentado por mrslash88 (150 puntos) Dic 26, 2019
Gracias, el tema es que tengo varios containers corriendo cada uno su mysql y solo comparten red con sus respectivas apps. Deberia tenerlos a todos en una misma red para poder hacerlo asi. En este momento estoy usando un script para que busque segun el nombre del servicio en docker, obtenga el id del container, y ahi corro el dump con un docker exec. No se si es lo mas practico, ni que resultados me dara. Todas las sugerencias son bienvenidas ya que soy nuevo en docker y estoy tratando de empezar a migrar algunas cosas a producción.
comentado por luigibalzani (10,670 puntos) Dic 26, 2019
Y no te convendria hacer backup del contenedor completo en vez del dump de la db? Si no te da el espacio podrias hacer un full e incrementales cada cierto tiempo.
comentado por mrslash88 (150 puntos) Dic 27, 2019
vos decis con docker save? voy a probar, y con el tiempo vere cual de las dos opciones me resulta mejor. Gracias por tus respuestas!
1

Como va,

No se si seguis con el mismo problema; pero busca container linking.  Es una forma de conectar contenedores no por red sino internamente. El tema es que tenes que levantar el container dentro del server donde corres la base de datos.

La otra opción es cambiar el tipo de red. No se, nunca lo usé; pero se que es para cuando, justamente, tenes containers efímeros.

Espero te sirva, saludos!

PD: Yo también prefiero el levantar un container que meter un comando en un cron :-)

respondido por ikarudelabasto (3,320 puntos) Ene 23
1Comentarios
comentado por mrslash88 (150 puntos) Feb 18
Gracias, lo voy a buscar!
...