Asest

Asociación Española de Storytelling
  • Eventos
  • Áreas de especialización
    • Emprendimiento
    • Salud
    • Deporte
    • Nuevas tecnologías
    • Turismo
    • Diseño y moda
  • Comunicación
    • Artículos
    • Prensa
    • Testimonios
  • Story
  • Galería
  • Contacto
  • Acerca de
Inicio
|
Comunicación

Creación de una Base de Datos MySQL al Inicio con Docker: Guía Detallada

by Admin on 14/11/2025

En el mundo del desarrollo de software moderno, la contenerización se ha convertido en una práctica común, especialmente con Docker. Para entornos de desarrollo y pruebas, es muy útil tener las bases de datos que se ejecutan como contenedores, ya que no tiene ninguna dependencia externa y simplemente ejecutar el comando docker-compose up inicia toda la aplicación.

Un punto clave en los microservicios es que cada microservicio posee sus datos relacionados, por lo que debe tener su propia base de datos. Sin embargo, las bases de datos pueden estar en cualquier lugar.

Este artículo explora cómo crear una base de datos MySQL al inicio utilizando Docker, abordando la configuración, las pruebas de integración y alternativas como Redis y bases de datos InMemory.

Configuración Inicial de la Base de Datos en Docker

Al iniciar un contenedor de SQL Server por primera vez, el contenedor inicializa SQL Server con la contraseña que proporcione. El contenedor de SQL Server de la aplicación de ejemplo se configura con el siguiente código YAML en el archivo docker-compose.yml, que se ejecuta al ejecutar docker-compose up. Tenga en cuenta que el código YAML tiene información de configuración consolidada del archivo genérico docker-compose.yml y del archivo docker-compose.override.yml.

Tener SQL Server ejecutándose como contenedor no solo es útil para una demostración en la que es posible que no tenga acceso a una instancia de SQL Server.

Manejo de Errores y Reintentos

Hay una advertencia importante al aplicar migraciones e inicializar una base de datos durante el inicio del contenedor. Dado que es posible que el servidor de bases de datos no esté disponible por cualquier motivo, debe manejar los reintentos mientras espera a que el servidor esté disponible.

//migration can't fail for network related exception.

CURSO DE DOCKER - Crear una Base de Datos MySQL en DOCKER 🐳

Pruebas de Integración

Al ejecutar pruebas de integración, resulta útil tener una manera de generar datos coherentes con las pruebas de integración. Otra buena opción al ejecutar pruebas es usar el proveedor de bases de datos InMemory de Entity Framework.

Limitaciones de Bases de Datos InMemory

Sin embargo, hay un truco importante. La base de datos en memoria no admite muchas restricciones específicas de una base de datos determinada. Por ejemplo, puede agregar un índice único en una columna del modelo de EF Core y escribir una prueba en la base de datos en memoria para comprobar que no permite agregar un valor duplicado. Pero cuando se usa la base de datos en memoria, no se pueden controlar índices únicos en una columna.

Incluso así, una base de datos en memoria sigue siendo útil para probar y crear prototipos. Pero si desea crear pruebas de integración precisas que tengan en cuenta el comportamiento de una implementación de base de datos específica, debe usar una base de datos real como SQL Server.

Alternativas: Redis en Contenedores

Puede ejecutar Redis en un contenedor, especialmente para desarrollo y pruebas y para escenarios de prueba de concepto. Sin embargo, al ejecutar Redis en producción, es mejor buscar una solución de alta disponibilidad como Redis Microsoft Azure, que se ejecuta como PaaS (plataforma como servicio).

Redis proporciona una imagen de Docker con Redis. En eShopOnContainers, el basket-api microservicio usa una caché de Redis que se ejecuta como un contenedor. Este código del docker-compose.yml define un contenedor denominado basketdata en función de la imagen de redis y publica internamente el puerto 6379.

Ejemplo de Configuración Redis en Docker Compose:

version: '3.8'services: basketdata: image: redis:latest ports: - "6379:6379"

Comparación de Opciones de Bases de Datos en Docker

A continuación, se presenta una tabla comparativa que resume las diferentes opciones de bases de datos y sus usos en Docker:

Opción de Base de Datos Ventajas Desventajas Casos de Uso
MySQL en Docker Fácil configuración, ideal para desarrollo y pruebas. Requiere manejo de reintentos y migraciones. Desarrollo local, pruebas de integración.
SQL Server en Docker Útil para demostraciones y entornos sin acceso a instancias SQL Server. Debe manejar reintentos y migraciones. Demostraciones, pruebas de integración.
Bases de Datos InMemory (Entity Framework) Rápida para pruebas y prototipos. No soporta todas las restricciones de bases de datos reales. Pruebas rápidas, prototipos.
Redis en Docker Caché rápida y fácil de configurar. Para producción se recomienda soluciones de alta disponibilidad. Caché, desarrollo, pruebas.

tags: #mysql #docker #crear #base #de #datos

Publicaciones populares:

  • Expansión estratégica de Basic-Fit
  • Conoce las ayudas disponibles para la consolidación del empleo autónomo en Cantabria.
  • Impulsa tu negocio
  • Claves del Éxito en Marketing Varejista
  • Subvenciones para startups
Asest © 2025. Privacy Policy