¿Qué es Docker?
Docker es una plataforma de contenedores que te permite empaquetar tu aplicación con todas sus dependencias en un entorno aislado y reproducible.
Conceptos Clave
- Imagen: Plantilla inmutable con el SO, dependencias y código
- Contenedor: Instancia en ejecución de una imagen
- Dockerfile: Instrucciones para construir una imagen
- Docker Compose: Orquestación de múltiples contenedores
Dockerfile para PHP
FROM php:8.2-apache
# Instalar extensiones
RUN docker-php-ext-install pdo_mysql mysqli
# Copiar código
COPY . /var/www/html/
# Habilitar mod_rewrite
RUN a2enmod rewrite
EXPOSE 80
Docker Compose: LAMP Stack
version: "3.8"
services:
php:
build: .
ports:
- "8080:80"
volumes:
- ./:/var/www/html
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mi_app
ports:
- "3306:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8081:80"
environment:
PMA_HOST: mysql
Comandos Esenciales
docker build -t mi-app .
docker-compose up -d
docker-compose down
docker ps
docker logs [container_id]
Conclusión
Docker elimina el "funciona en mi máquina". Es una herramienta esencial para cualquier desarrollador moderno.