Ejemplo: MySQL con Docker
Este ejemplo muestra cómo configurar y gestionar un contenedor de MySQL utilizando Docker. Aprenderás a crear un contenedor de MySQL, interactuar con la base de datos, y persistir los datos para garantizar que no se pierdan cuando el contenedor se detenga o elimine.
Pasos a Seguir:
-
Construir y Ejecutar un Contenedor de MySQL:
Este comando crea un contenedor de MySQL con una contraseña de root especificada y un volumen que persiste los datos en tu máquina local.
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=my-data-pass -v /data/mysql-data:/var/lib/mysql mysql
-d
: Ejecuta el contenedor en modo desapercibido (detached).--name mysql-container
: Asigna un nombre al contenedor.-e MYSQL_ROOT_PASSWORD=my-data-pass
: Establece la contraseña para el usuario root de MySQL.-v /data/mysql-data:/var/lib/mysql
: Monta un volumen local para persistir los datos de la base de datos.
-
Acceder a MySQL Dentro del Contenedor:
Una vez que el contenedor esté en ejecución, puedes acceder a su terminal y ejecutar comandos en MySQL.
docker exec -it mysql-container bash
Dentro del contenedor, ingresa al cliente MySQL con el siguiente comando:
mysql -u root -p
Introduce la contraseña que especificaste al crear el contenedor (
my-data-pass
). -
Ejecutar un Script SQL Dentro del Contenedor:
Para ejecutar un archivo SQL (por ejemplo,
data.sql
) que se encuentra en tu máquina local, debes copiarlo al contenedor o montarlo como un volumen.mysql -u root -p
USE base_de_datos;
SOURCE /ruta/al/archivo/data.sql; -
Detener y Eliminar el Contenedor MySQL:
Si necesitas detener el contenedor temporalmente, usa el siguiente comando:
docker stop mysql-container
Para eliminar el contenedor:
docker rm mysql-container
-
Reiniciar el Contenedor MySQL:
Vuelve a ejecutar el contenedor utilizando el mismo comando que antes. Los datos persistirán gracias al volumen montado.
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=my-data-pass -v /data/mysql-data:/var/lib/mysql mysql
-
Verificar la Persistencia de los Datos:
Accede nuevamente al contenedor y verifica que los datos anteriores aún estén en la base de datos:
docker exec -it mysql-container bash
Dentro del contenedor:
mysql -u root -p
USE base_de_datos;
SELECT * FROM usuarios;
Notas:
- Asegúrate de que la ruta
/data/mysql-data
en tu máquina local exista y tenga los permisos adecuados para que Docker pueda escribir en ella. - Este ejemplo asume que tienes un archivo SQL que deseas ejecutar en la base de datos. Si no tienes uno, puedes crear una tabla manualmente y añadir algunos datos para probar la persistencia.