Programación Web

Cómo montar una Base de Datos MySql Persistida con Docker

Tener una base de datos local es decimonónico, en esta corta guía vas a aprender cómo montar una base de datos mysql con Docker que podrás usar para cualquier proyecto. Este tutorial sobre cómo montar una Base de Datos MySql Persistida con Docker sirve para versiones de Windows 10, Windows 11… pero casi todos los pasos servirían también para Linux o Mac.

Ventajas de montar una base de datos con Docker

No te voy a mentir, escribo esto para poder consultarlo yo mismo en el futuro. Desde hace unos meses uso Windows 11 y ya es la segunda vez este mes que se me corrompe la base de datos mysql que uso para varios proyectos, con el daño que eso conlleva, por eso estas son las ventajas de tener tus bases de datos con Docker:

  • Bases aisladas por proyectos
  • Posibilidad de emplear diferentes versiones si lo necesitas
  • Fácil de compartir con compañeros

Vamos a ello.

Paso a paso: montar una Base da Datos MySql Persistida con Docker

Si no tienes Docker instalado, instálalo. Hay mil tutoriales, por ahí, busca el que se adecúe a tu entorno y vuelve. BUSCAR EN GOOGLE

Esto es vergonzosamente sencillo, pero como todo, hay que saber montar una Base da Datos MySql Persistida con Docker para poder hacerlo.

Un poco de teoría

Cuando un contendor Docker se para, normalmente se borran todos los datos, en nuestro caso queremos evitar eso para poder usar nuestra base de datos mysql de la forma habitual.

Para lograr ese efecto, crearemos un volumen de docker que contrendrá los datos, un volumen, en esencia, nos permite vincular una carpeta del guest con una del host, así esos archivos no serán borrados al apagarse la máquina.

Y ya está, con esto podemos avanzar.

Creamos un volumen

En este paso vamos a crear un volumen de Docker que luego podremos relacionar con una ubicación física de la máquina host, se hace con el siguiente comando.

docker volume create mysql-db-data

Ahora si haces «docker volume ls» tendrás un volumen nuevo, el que has creado.

docker volume ls

Descargamos la imagen de mysql

Ahora tenemos que crear una carpeta para almacenar en la máquina host el contenido de la base de datos, en mi caso esa ruta será:

C:\Users\Fausto\data_mysql

Ahora levantamos una máquina mysql-db que nos traerá la última versión de mysql.
docker run -d -p 33060:3306 --name mysql-db -e MYSQL_ROOT_PASSWORD=secret --mount src=mysql-db-data,dst=//C/Users/Fausto/data_mysql mysql

Si te fijas en la ruta, por ser Windows 11, yo he tenido que modificar la ruta respecto a la origina, cambiando \ por /, quitando los : y añadiendo doble barra antes de C, quendando: «//C/Users/Fausto/data_mysq»

Y ya estaría.

Cómo usar mi base de datos mysql en Docker

Con cualquier cliente, por ejemplo mysql workbench, puedes conectarte a través del puerto 33060, que como ves, apunta al 3306, la contraseña en este caso es «secret» pero puedes poner la que quieras.

También puedes acceder con el CLI desde el control de Docker:

fruiz

Share
Publicado por
fruiz

Recent Posts

Cuánto CTR te quitan de verdad las AI Overviews: mídelo con tu propio Search Console

Los estudios públicos dicen una cosa y tu tráfico dice otra. Aquí tienes un método…

57 años atrás

Todo es un plugin: DeepSeek suelta su arnés de agentes y la capa intermedia se queda sin discurso

DeepSeek publicó el 13 de agosto su propio arnés de agentes, DeepSeek Harness (dsh para…

57 años atrás

¿Qué es el graph engineering? La explicación corta y la letra pequeña

Un compañero me mandó un tuit preguntando qué demonios era el graph engineering. Aquí va…

57 años atrás

Puse un llms.txt y me fui a los logs del servidor: esto es lo que pasó de verdad

Monté un llms.txt en un dominio propio y luego hice lo único que da respuestas…

57 años atrás

Dos años después del castigo a las secciones de cupones: quién cortó y quién sigue igual

En mayo de 2024 Google empezó a desindexar secciones enteras alojadas dentro de medios de…

57 años atrás

Un aparato sin pantalla: ¿dónde pones los diez resultados azules?

OpenAI prepara un altavoz sin pantalla para 2027. Sin pantalla no hay diez enlaces: hay…

57 años atrás