En entornos modernos, ejecutar bases de datos dentro de contenedores Docker es una práctica habitual. Sin embargo, cuando llega el momento de restaurar o importar un dump de MySQL, es importante conocer el procedimiento correcto para hacerlo de forma simple y segura.
En este artículo te explico cómo importar una base de datos MySQL directamente dentro de un contenedor Docker, con ejemplos prácticos que puedes aplicar en tu día a día como administrador de sistemas.
Concepto básico
Cuando trabajas con Docker, el servidor MySQL se ejecuta dentro de un contenedor aislado. Para interactuar con él, necesitas usar el comando:
$ docker exec
Este comando permite ejecutar instrucciones dentro del contenedor, como si estuvieras conectado directamente al sistema.
Importar una base de datos desde un archivo .sql
El caso más común es tener un archivo de respaldo en formato:
data.sql
Para importarlo en una base de datos MySQL que corre dentro de un contenedor, puedes utilizar:
$ docker exec -i mysql-container mysql -uuser -ppassword name_db < data.sql
Donde:
mysql-container→ nombre del contenedor.user→ usuario de MySQL.password→ contraseña del usuario.name_db→ base de datos destino.< data.sql→ redirección del archivo a importar.
Este comando envía el contenido del archivo directamente al cliente MySQL dentro del contenedor.
Validaciones previas
Antes de ejecutar la importación, asegúrate de:
- Que el contenedor esté en ejecución:
$ docker ps
- Que la base de datos exista dentro del contenedor.
- Que el usuario tenga permisos suficientes para importar datos.
Importar desde un archivo comprimido
En algunos casos, los backups pueden estar comprimidos. Aunque este artículo no se enfoca en compresión, es común canalizar la salida de una herramienta de descompresión directamente hacia MySQL.
Ejemplo típico:
$ gunzip < backup.sql.gz | docker exec -i mysql-container mysql -uuser -ppassword name_db
Esto evita generar archivos intermedios en disco.
Conclusión
Importar una base de datos MySQL dentro de un contenedor Docker es un proceso directo cuando se comprende el uso de docker exec y la redirección de archivos. Esta técnica es fundamental para tareas de migración, restauración y despliegue en entornos contenerizados.
Si trabajas con infraestructura basada en Docker, dominar este tipo de operaciones te permitirá gestionar tus bases de datos de forma más eficiente y segura.
0 comentarios