Crear Bases de Datos MariaDB con Docker, PHP y phpMyAdmin
Tabla de contenidos
- 1 Introducción
- 2 Requisitos previos
- 3 Paso 1: Preparar el entorno de trabajo
- 4 Paso 2: Configurar Visual Studio Code
- 5 Paso 3: Crear el Dockerfile
- 6 Paso 4: Crear el docker-compose.yml
- 7 Paso 5: Iniciar los contenedores
- 8 Paso 6: Trabajar con la base de datos
- 9 Paso 7: Crear bases de datos desde diagramas ER
- 10 Paso 8: Crear bases de datos adicionales
- 11 Paso 9: Gestionar los contenedores
- 12 Ejercicios prácticos
- 13 Solución de problemas comunes
- 14 Próximos pasos
- 15 Recursos adicionales
- 16 Conclusión
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
- Abre Visual Studio Code
- Presiona
Ctrl+Shift+PoCmd+Shift+P - Busca «Remote-SSH: Connect to Host»
- Introduce tu IP:
usuario@tu-ip - 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
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
- En VS Code, ve a la pestaña «PORTS»
- Añade el puerto
8081 - Haz clic en el icono de navegador
- 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
- Haz una captura de pantalla de tu diagrama Entidad-Relación
- Ve a ChatGPT (versión Plus recomendada)
- 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.
- 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
- Accede a MariaDB como alumno
- Selecciona la base de datos:
USE tienda; - Copia y pega todo el script SQL
- 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_envantes de ejecutardocker compose up
Error: «Permission denied»
- Causa: El usuario no tiene permisos
- Solución: Usa
sudoo 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+Spara 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