Bases de datos MySQL con Docker

| Última modificación: 18 de marzo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes cómo se usa MySQL con Docker? En el mundo del desarrollo web y la tecnología, la gestión de bases de datos es una tarea crucial y constante. Tradicionalmente, instalar y configurar bases de datos podía ser un proceso tedioso y complicado. Hoy en día podemos simplificar y agilizar esta tarea mediante el uso de Docker, una herramienta que ha revolucionado la forma en la que desarrollamos y desplegamos aplicaciones.

¿Qué es Docker y por qué es tan popular?

Antes de entrar en el tema de MySQL con Docker, veamos qué es Docker.

Docker es una herramienta que permite la creación, distribución y ejecución de aplicaciones dentro de contenedores. Estos contenedores son entornos aislados y autónomos que incluyen todo lo necesario para que una aplicación funcione correctamente, incluidas las bibliotecas, dependencias y configuraciones. De esta forma, Docker garantiza que una aplicación se ejecute de manera consistente en cualquier entorno.

MySQL con Docker

Levantando MySQL con Docker

Aunque pueda sonar obvio, antes de sumergirnos en el emocionante mundo de MySQL con Docker, necesitamos asegurarnos de tener Docker instalado en nuestra máquina host. La instalación es bastante sencilla y existen guías detalladas en el Docker Hub, que es el repositorio oficial de imágenes de Docker.

Una vez que tengamos Docker instalado, también podemos optar por instalar Docker Compose, una herramienta que nos permitirá definir y gestionar múltiples contenedores de Docker utilizando un archivo YAML. Con Docker Compose, podemos configurar y enlazar fácilmente diferentes servicios, lo que hace que el despliegue de aplicaciones más complejas sea un juego de niños.

Ahora que tenemos todo listo, es hora de entrar en materia sobre MySQL con Docker. El primer paso es obtener la imagen de MySQL desde el Docker Hub. Podemos hacerlo ejecutando el siguiente comando:

//MySQL con Docker
docker pull mysql

Con este comando, Docker descargará la imagen de MySQL desde el repositorio oficial y estará lista para ser utilizada.

Ejecutar el contenedor de MySQL en segundo plano

Una vez que tenemos la imagen de MySQL, podemos ejecutar un contenedor en segundo plano utilizando el siguiente comando:

//MySQL con Docker
docker run -d --name mi_base_de_datos -e MYSQL_ROOT_PASSWORD=mi_contraseña -p 3306:3306 mysql

En este comando, estamos ejecutando un contenedor a partir de la imagen de MySQL en segundo plano (-d) y asignándole un nombre (--name). Además, estamos configurando la contraseña del usuario root (-e MYSQL_ROOT_PASSWORD) y redirigiendo el puerto 3306 del contenedor al puerto 3306 de nuestra máquina host (-p 3306:3306).

Comunicando Docker con MySQL

Ahora que tenemos nuestro contenedor de MySQL en funcionamiento, podemos conectarnos a él utilizando cualquier cliente de MySQL. Podemos utilizar el cliente de línea de comandos, herramientas gráficas como phpMyAdmin o cualquier otro cliente de nuestra preferencia.

Para conectarnos al contenedor desde la línea de comandos, podemos usar el siguiente comando:

//MySQL con Docker
mysql -h 127.0.0.1 -P 3306 -u root -p

Una vez introducida la contraseña que configuramos al ejecutar el contenedor, estaremos dentro de la consola de MySQL y listos para administrar nuestra base de datos.

Persistencia de datos y Docker Compose

Una de las ventajas de utilizar Docker para gestionar nuestra base de datos es la facilidad para mantener la persistencia de los datos. Por defecto, los datos dentro de un contenedor son efímeros, lo que significa que se perderán cuando el contenedor se detenga o se elimine. Sin embargo, utilizando volúmenes en Docker o Docker Compose, podemos asegurarnos de que nuestros datos se mantengan incluso si el contenedor se recrea.

Con Docker Compose, podemos definir nuestra base de datos MySQL junto con otros servicios o aplicaciones que dependan de ella. De esta forma, podemos gestionar todo nuestro entorno de desarrollo con un solo archivo docker-compose.yml.

//MySQL con Docker
version: '3'
services:
  mysql:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: mi_contraseña
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

¡Sigue aprendiendo!

El uso de Docker para gestionar bases de datos, en particular MySQL, es una práctica que simplifica enormemente el desarrollo y el despliegue de aplicaciones.

Si eres un apasionado del desarrollo web y te gustaría sumergirte en el fascinante mundo de Docker y MySQL, te animamos a unirte al Desarrollo Web Full Stack Bootcamp de KeepCoding. En este bootcamp, aprenderás todas las habilidades necesarias para destacar en el sector IT, incluyendo el uso de Docker, bases de datos y mucho más. Al finalizar, estarás preparado para acceder a un mercado laboral con alta demanda de profesionales y disfrutar de salarios altos y estabilidad laboral. ¡No esperes más y cambia tu vida con KeepCoding!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado