MySQL desde un Docker container

August 18, 2020

1 1e3zddUQaQMuEZevmzCaDw

Docker puede ser una herramienta útil para empaquetar aplicaciones y todas las dependencias en un entorno aislado, que puede enviarse e implementarse en cualquier sistema o servidor.

Esto asegura la portabilidad y hace que ejecutar la aplicación sea extremadamente fácil y sin complicaciones.

Paso 1 - Crear un volumen

Docker gestiona la persistencia de la información de una manera muy simple, cada imágen y contenedor que tengamos en nuestro equipo se conservarán hasta que los borremos. Crearemos un espacio en el host donde alojaremos y persistiremos la informacion generada en el contenedor, no el contenedor en si.

Creamos un volumen para no perder la informacion al terminar los procesos:

$ docker volume create mysql-db-data

Paso 2 - Configuremos la BD

Descargamos la imagen de Docker con MySQL y agregamos el volumen para persistir los datos.

$ docker run -d -p 3306:3306 --name mysql-db  -e MYSQL_ROOT_PASSWORD=secret --mount src=mysql-db-data,dst=/var/lib/mysql mysql

Paso 3 - Cargar la Base de datos dentro del contenedor:

Si estas en Windows:

 & cmd.exe /c "docker exec -i mysql-db mysql -psecret pollitos < pollitos.sql"

Si estas en Linux/Unix

 & docker exec -i mysql-db mysql -psecret pollitos < pollitos.sql

Donde:

  • exec: El comando docker exec ejecuta un nuevo comando en un contenedor en ejecución.
  • -it Docker permite ejecutar un contenedor en modo interactivo. Esto significa que puede ejecutar comandos dentro del contenedor mientras aún se está ejecutando.
  • mysql -p: es el comando para entrar a la consola de mysql con el usuario root(si has trabajado con mysql en consola es lo mismo).

Luego podemos ingresar a la base de datos con el siguiente comando:

$ docker exec -it mysql-db mysql -p

Y de esta forma, tendriamos nuestro Container de MySQL el cual podemos acceder a traves de Workbench o DBeaver y podemos hacer uso del mismo a traves de 127.0.0.1:3306 y utilizarlo conectado otra aplicación.