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

Spec-driven development: el contrapeso disciplinado al vibe coding

El desarrollo con IA se ha dividido en dos campos: el vibe coding rápido y…

57 años atrás

Tres skills que le enseñan a Claude Code a no diseñar feo

Emil Kowalski, Impeccable y Taste Skill: tres skills externas que le dan vocabulario visual concreto…

57 años atrás

Cómo identificar una agencia Shopify técnica de verdad (y no una agencia de marketing disfrazada)

El mercado español de agencias Shopify está lleno de agencias de marketing que tocan Shopify…

57 años atrás

Vi un sitemap_agentic_discovery.xml en una tienda Shopify y ya no puedo desverlo

Una tienda española está exponiendo tres archivos pensados para agentes de IA y un sitemap…

57 años atrás

Claude Code Routines: Anthropic acaba de darle un turno de noche a tu IDE

Anthropic lanzó Routines en Claude Code el 14 de abril de 2026. Tu agente IA…

57 años atrás

¿Sabías que tu web de WordPress carga 2 MB de CSS que no usa? Bienvenido a los page builders

Abre Chrome DevTools en cualquier web hecha con Elementor y mira la pestaña Coverage. Entre…

57 años atrás