Aprende Inteligencia Artificial y Acelera tu Futuro

Descubre cómo la IA puede multiplicar tu productividad y cambiar tu forma de trabajar.

Acceder al Curso Ahora

Crear Bases de Datos MariaDB con Docker, PHP y phpMyAdmin

Introducción

En este tutorial aprenderás a configurar un entorno completo de desarrollo con MariaDB, Docker, PHP y phpMyAdmin usando Visual Studio Code. Ideal para estudiantes de sistemas microinformáticos y redes.

Requisitos previos

  • Debian o Ubuntu instalado
  • Docker y Docker Compose instalados
  • Visual Studio Code con extensión Remote-SSH
  • Acceso SSH a tu servidor/máquina virtual

Paso 1: Preparar el entorno de trabajo

1.1 Crear la estructura de carpetas

cd /docker
mkdir proyecto_clase
cd proyecto_clase
mkdir docker_env proyecto_php

1.2 Verificar la estructura

ls -la
# Deberías ver: docker_env/ y proyecto_php/

Paso 2: Configurar Visual Studio Code

2.1 Conectar a tu servidor

  1. Abre Visual Studio Code
  2. Presiona Ctrl+Shift+P o Cmd+Shift+P
  3. Busca «Remote-SSH: Connect to Host»
  4. Introduce tu IP: usuario@tu-ip
  5. Abre la carpeta /docker/proyecto_clase

2.2 Abrir terminal integrado

  • Usa Ctrl+Ñ o menú Terminal → New Terminal
  • Ventaja: Puedes abrir múltiples terminales simultáneas

Paso 3: Crear el Dockerfile

3.1 Navegar a la carpeta correcta

cd docker_env

3.2 Crear el archivo Dockerfile

Crea un archivo llamado Dockerfile con este contenido:

FROM php:8.1-apache

# Instalar extensiones de PHP necesarias
RUN docker-php-ext-install mysqli pdo pdo_mysql

# Habilitar mod_rewrite de Apache
RUN a2enmod rewrite

# Configurar el directorio de trabajo
WORKDIR /var/www/html

Paso 4: Crear el docker-compose.yml

4.1 Crear el archivo en docker_env

Crea un archivo llamado docker-compose.yml con este contenido:

version: '3.8'

services:
  web:
    build: .
    container_name: proyecto_web
    ports:
      - "3000:80"
    volumes:
      - ../proyecto_php:/var/www/html
    depends_on:
      - db

  db:
    image: mariadb:latest
    container_name: proyecto_db
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: tienda
      MYSQL_USER: alumno
      MYSQL_PASSWORD: alumno123
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: proyecto_phpmyadmin
    environment:
      PMA_HOST: db
      PMA_USER: root
      PMA_PASSWORD: root
    ports:
      - "8081:80"
    depends_on:
      - db

volumes:
  db_data:

4.2 Parámetros importantes

  • Base de datos inicial: tienda
  • Usuario root: root / root
  • Usuario estándar: alumno / alumno123
  • Puerto phpMyAdmin: 8081
  • Puerto web: 3000

Paso 5: Iniciar los contenedores

5.1 Ejecutar Docker Compose

cd /docker/proyecto_clase/docker_env
docker compose up

⚠️ Importante: Debes estar en la carpeta docker_env donde están los archivos.

5.2 Verificar que todo funciona

Espera a que aparezcan mensajes como:

✓ Container proyecto_db started
✓ Container proyecto_web started
✓ Container proyecto_phpmyadmin started

5.3 Abrir phpMyAdmin

  1. En VS Code, ve a la pestaña «PORTS»
  2. Añade el puerto 8081
  3. Haz clic en el icono de navegador
  4. Accede con: alumno / alumno123

Paso 6: Trabajar con la base de datos

6.1 Acceder al contenedor de MariaDB

En un nuevo terminal:

docker ps  # Ver contenedores activos
docker exec -it proyecto_db bash

6.2 Conectar a MariaDB

Como usuario alumno:

mariadb -u alumno -p
# Contraseña: alumno123

Como usuario root (para crear bases de datos):

mariadb -u root -p
# Contraseña: root

6.3 Comandos básicos

-- Ver bases de datos
SHOW DATABASES;

-- Seleccionar una base de datos
USE tienda;

-- Ver tablas
SHOW TABLES;

-- Salir
EXIT;

Paso 7: Crear bases de datos desde diagramas ER

7.1 Usar ChatGPT para generar SQL

  1. Haz una captura de pantalla de tu diagrama Entidad-Relación
  2. Ve a ChatGPT (versión Plus recomendada)
  3. Usa este prompt:
Hazme el modelo para crear las tablas en MariaDB 
de este modelo de datos con los nombres en castellano.
Usa id para los campos de primary key en cada tabla.
No uses id_cliente, id_proveedor, etc.
  1. Pídele: «Ponlo todo en un script para que lo pueda copiar en el terminal de MariaDB»

7.2 Ejemplo: Base de datos tienda

CREATE TABLE cliente (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    apellidos VARCHAR(150),
    email VARCHAR(100),
    telefono VARCHAR(15)
);

CREATE TABLE proveedor (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    direccion VARCHAR(200),
    telefono VARCHAR(15)
);

CREATE TABLE producto (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    precio DECIMAL(10,2),
    stock INT DEFAULT 0,
    id_proveedor INT,
    FOREIGN KEY (id_proveedor) REFERENCES proveedor(id)
);

CREATE TABLE compra (
    id INT AUTO_INCREMENT PRIMARY KEY,
    fecha DATE NOT NULL,
    id_cliente INT,
    id_producto INT,
    cantidad INT,
    FOREIGN KEY (id_cliente) REFERENCES cliente(id),
    FOREIGN KEY (id_producto) REFERENCES producto(id)
);

7.3 Ejecutar el script

  1. Accede a MariaDB como alumno
  2. Selecciona la base de datos: USE tienda;
  3. Copia y pega todo el script SQL
  4. Verifica: SHOW TABLES;

Paso 8: Crear bases de datos adicionales

8.1 Crear nueva base de datos (como root)

-- Conectar como root
mariadb -u root -p

-- Crear base de datos
CREATE DATABASE transporte;

-- Dar permisos al usuario alumno
GRANT ALL PRIVILEGES ON transporte.* TO 'alumno'@'%';
FLUSH PRIVILEGES;

-- Usar la nueva base de datos
USE transporte;

8.2 Permitir acceso de root en phpMyAdmin

Edita el docker-compose.yml para añadir estas variables en el servicio phpmyadmin:

phpmyadmin:
  environment:
    PMA_HOST: db
    PMA_USER: root
    PMA_PASSWORD: root
    PMA_ARBITRARY: 1

Reinicia los contenedores:

docker compose down
docker compose up

Paso 9: Gestionar los contenedores

Comandos útiles

# Ver contenedores activos
docker ps

# Ver todos los contenedores
docker ps -a

# Detener contenedores
docker compose down

# Iniciar en segundo plano
docker compose up -d

# Ver logs en tiempo real
docker compose logs -f

# Reiniciar un servicio específico
docker compose restart db

Ejercicios prácticos

Ejercicio 1: Base de datos Academia

Crea una base de datos llamada academia con las siguientes tablas:

  • profesores
  • alumnos
  • cursos
  • matriculas

Ejercicio 2: Base de datos Talleres

Crea una base de datos llamada talleres con:

  • vehiculos
  • clientes
  • reparaciones
  • mecanicos

Ejercicio 3: Base de datos Clínica

Crea una base de datos llamada clinica con:

  • pacientes
  • medicos
  • citas
  • tratamientos

Solución de problemas comunes

Error: «No configuration file found»

  • Causa: No estás en la carpeta correcta
  • Solución: cd docker_env antes de ejecutar docker compose up

Error: «Permission denied»

  • Causa: El usuario no tiene permisos
  • Solución: Usa sudo o conecta como root para crear bases de datos

No veo las tablas en phpMyAdmin

  • Causa: Has iniciado sesión con el usuario equivocado
  • Solución: Cierra sesión y entra como root / root

El archivo no se guarda

  • Causa: Hay un punto blanco junto al nombre del archivo
  • Solución: Presiona Ctrl+S para guardar

Próximos pasos

En el siguiente tutorial aprenderás a:

  • Crear formularios con Node.js (n)
  • Insertar datos desde una interfaz web
  • Conectar PHP con MariaDB
  • Validar datos de formularios

Recursos adicionales

Conclusión

Ahora tienes un entorno completo de desarrollo con Docker, MariaDB y phpMyAdmin. Practica creando diferentes bases de datos y familiarízate con los comandos SQL básicos.


¿Te ha sido útil este tutorial? Déjanos un comentario y comparte tus dudas.

Tags: #MariaDB #Docker #phpMyAdmin #BaseDeDatos #SQL #Tutorial #DesarrolloWeb

Tutoriales Más Vistos

Posts Más Vistos