Saltar al contenido principal

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:

  1. 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.
  2. 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).

  3. 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;
  4. 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
  5. 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
  6. 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.