Docker WordPress Desarrollo Local Chile: Guia Completa 2026
Docker para desarrollo local WordPress: contenedores aislados, mismo stack que produccion, cero conflictos de version. Guia paso a paso sin jargon innecesario.
Docker para Desarrollo Local WordPress: Contenedores en tu Maquina
Si alguna vez perdiste una tarde entera configurando PHP, MySQL y Apache en tu maquina para despues descubrir que la version de PHP no era compatible con el plugin que necesitabas, ya sabes por que Docker existe. Docker soluciona el problema mas viejo del desarrollo WordPress: la diferencia entre tu entorno local y el servidor de produccion. Con contenedores, tu maquina corre exactamente el mismo stack que tu hosting — misma version de PHP, misma version de MariaDB, misma configuracion de nginx o Apache — sin tocar un solo archivo del sistema operativo.
Para desarrolladores en Chile que trabajan con multiples clientes, Docker es un antes y despues. Cada proyecto WordPress puede tener su propio contenedor con versiones distintas de PHP y MySQL corriendo simultaneamente, sin conflictos. No mas XAMPP con una sola version de PHP. No mas bases de datos locales mezcladas. Cada proyecto es una isla aislada que puedes levantar, destruir y reconstruir en segundos.
Docker tambien elimina el clasico "en mi maquina si funciona". Si el contenedor funciona en tu laptop, va a funcionar igual en el servidor cuando lo deployes con git, porque el contenedor es el mismo entorno empaquetado. Eso significa menos tickets de soporte, menos horas debugging diferencias de entorno, y mas tiempo escribiendo codigo que realmente importa.
Docker vs XAMPP/MAMP: Cuando Usar Contenedores
XAMPP y MAMP cumplieron su rol durante anos. Son utiles si solo necesitas levantar un WordPress rapido y no te importa la version de PHP. Pero cuando trabajas con multiples proyectos WordPress profesionalmente, los problemas aparecen rapido: una sola instalacion de MySQL, una sola version de PHP, y configuraciones globales que afectan todos tus proyectos al mismo tiempo.
Docker cambia la matematica. En vez de un servidor local monolitico, cada proyecto vive en su propio stack de contenedores. Necesitas PHP 8.1 para un cliente y PHP 7.4 para otro? Dos archivos docker-compose.yml, dos configuraciones aisladas, cero conflicto. Quieres probar un plugin con MariaDB 10.6 y otro con MariaDB 10.11? Se puede, sin tocar la base de datos del otro proyecto.
La regla practica es simple: si trabajas con un solo proyecto WordPress de forma casual, XAMPP puede bastar. Pero si desarrollas profesionalmente — multiples clientes, plugins complejos, temas a medida — Docker es la herramienta correcta. La inversion inicial de aprender docker-compose se paga rapidisimo cuando dejas de perder tiempo configurando entornos y empezas a clonarlos con un comando.
Ademas, Docker se integra naturalmente con workflows modernos: git, CI/CD pipelines, y la misma configuracion que usas en produccion en tu hosting Elevocloud.
Instalacion de Docker Desktop en macOS, Windows y Linux
Antes de escribir un solo docker-compose.yml, necesitas Docker Desktop corriendo en tu maquina. El proceso varia segun tu sistema operativo, pero el resultado es el mismo: un daemon de Docker listo para levantar contenedores.
macOS: Descarga Docker Desktop desde docker.com/products/docker-desktop. Las Mac con Apple Silicon (M1/M2/M3/M4) usan imagenes ARM nativas — verifica que tu docker-compose.yml use imagenes con soporte multi-arch, como las oficiales de WordPress y MariaDB, que ya incluyen binarios ARM64. La instalacion es arrastrar y soltar como cualquier app de Mac.
Windows: Docker Desktop para Windows requiere WSL 2 (Windows Subsystem for Linux). Si no lo tienes habilitado, Docker te va a guiar por el proceso. Abre PowerShell como administrador y ejecuta wsl --install, reinicia, y despues instala Docker Desktop. Las versiones recientes de Windows 10 y 11 ya traen WSL 2 integrado. Una vez instalado, Docker corre como una app mas desde la bandeja del sistema.
Linux: En Ubuntu, Debian, Fedora y otras distros, instala Docker Engine desde los repositorios oficiales:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Agrega tu usuario al grupo docker con sudo usermod -aG docker $USER para no necesitar sudo en cada comando. Cierra sesion y vuelve a entrar para que el cambio tenga efecto.
En los tres sistemas, verifica la instalacion con docker --version y docker compose version. Si ambos responden sin errores, estas listo para el siguiente paso.
Tu Primer Contenedor WordPress: docker run Paso a Paso
Empezamos con lo mas basico: levantar WordPress con un solo comando. Esto no es lo que vas a usar en produccion — es para entender como Docker corre un contenedor individual.
Primero, necesitas una base de datos. MariaDB es la opcion mas compatible con WordPress:
docker run -d \ --name wordpress-db \ -e MYSQL_ROOT_PASSWORD=tu_password_seguro \ -e MYSQL_DATABASE=wordpress \ -e MYSQL_USER=wp_user \ -e MYSQL_PASSWORD=password_seguro \ mariadb:10.11
El flag -d corre el contenedor en segundo plano. --name le da un nombre legible. Las variables -e configuran la base de datos, el usuario y la contrasena. Ahora levantamos WordPress conectado a esa base de datos:
docker run -d \ --name wordpress-app \ -e WORDPRESS_DB_HOST=wordpress-db \ -e WORDPRESS_DB_USER=wp_user \ -e WORDPRESS_DB_PASSWORD=password_seguro \ -e WORDPRESS_DB_NAME=wordpress \ -p 8080:80 \ --link wordpress-db:mysql \ wordpress:6.7-php8.2-apache
El flag -p 8080:80 mapea el puerto 80 del contenedor al puerto 8080 de tu maquina. Esto es clave: si el puerto 80 de tu host ya esta en uso (por XAMPP, por ejemplo), usa 8080 o cualquier otro puerto libre. Ahora abre http://localhost:8080 en tu navegador y vas a ver el instalador de WordPress.
Comandos que vas a usar siempre con Docker:
docker ps— lista contenedores activosdocker logs wordpress-app— ve los logs del contenedordocker exec -it wordpress-app bash— entra al contenedor como si fuera SSHdocker stop wordpress-app wordpress-db— detiene los contenedoresdocker rm wordpress-app wordpress-db— elimina los contenedores
Este enfoque de docker run funciona, pero es manual y propenso a errores. Para proyectos reales, usamos docker-compose.
docker-compose.yml para WordPress Multi-Entorno
Docker Compose es donde la magia ocurre. En vez de escribir comandos largos de docker run, definis todo tu stack en un archivo YAML y lo levantas con docker compose up -d. Este es el archivo docker-compose.yml que vas a usar en todos tus proyectos WordPress:
services:
wordpress:
image: wordpress:6.7-php8.2-apache
container_name: mi-wp
restart: unless-stopped
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: password_seguro
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
- ./wp-content:/var/www/html/wp-content
depends_on:
- db
db:
image: mariadb:10.11
container_name: mi-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: password_root_seguro
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: password_seguro
volumes:
- db_data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin:latest
container_name: mi-phpmyadmin
restart: unless-stopped
ports:
- "8081:80"
environment:
PMA_HOST: db
depends_on:
- db
volumes:
wordpress_data:
db_data:
Para levantar el stack: docker compose up -d. Para detenerlo: docker compose down. Para ver logs: docker compose logs -f wordpress.
Volumenes: Persistencia de Datos entre Contenedores
Los volumenes son la forma en que Docker guarda datos que sobreviven a que un contenedor se elimine o se actualice. Sin volumenes, todo lo que escribas dentro del contenedor desaparece cuando lo eliminas. Con volumenes, los datos persisten.
En el docker-compose.yml de arriba, definimos dos volumenes: wordpress_data y db_data. El primero monta el directorio de WordPress (/var/www/html) en el sistema de archivos del host. El segundo hace lo mismo con los datos de MariaDB. Si haces docker compose down y despues docker compose up -d, tu sitio sigue exactamente donde lo dejaste.
La linea - ./wp-content:/var/www/html/wp-content es especial: monta tu carpeta local wp-content directamente en el contenedor. Esto significa que puedes editar plugins y themes desde tu editor favorito (VSCode, Sublime) y los cambios se ven inmediatamente en el navegador, sin recargar Docker. Esta es la configuracion que vas a usar 90% del tiempo durante desarrollo.
Redes Docker: Comunicacion Entre Servicios
Docker Compose crea automaticamente una red para que los contenedores se comuniquen entre si. En el ejemplo, el contenedor wordpress se conecta a db usando el nombre del servicio como hostname. WordPress habla con MariaDB en db:3306 — no necesitas saber la IP del contenedor ni configurar nada.
Esto es networking transparente: cada servicio ve a los demas por su nombre de servicio. Si tienes varios proyectos Docker corriendo simultaneamente, cada uno tiene su propia red aislada. El proyecto A no puede ver los contenedores del proyecto B, a menos que explcitamente configurets shared networks.

Proyectos Multiples con Docker Compose
La razon principal para usar Docker en desarrollo WordPress es gestionar multiples proyectos sin que se pisen entre si. Aca es donde entra la convencion de estructura de carpetas.
Cada proyecto WordPress vive en su propia carpeta:
~/proyectos/
proyecto-a-wp/
docker-compose.yml
wp-content/
backups/
proyecto-b-wp/
docker-compose.yml
wp-content/
backups/
Dentro de proyecto-a-wp/, ejecutas docker compose up -d y levantas tu entorno. Tu sitio corre en http://localhost:8080. En otra terminal, dentro de proyecto-b-wp/, ejecutas docker compose up -d y ese proyecto corre en http://localhost:8081. Los puertos diferentes evitan conflictos.
Si el puerto 8080 esta ocupado, cambia el mapeo en docker-compose.yml:
ports: - "8090:80"
Ahora tu proyecto corre en http://localhost:8090. Asi de simple.

WP-CLI Dentro de un Contenedor Docker
WP-CLI es la herramienta de linea de comandos para WordPress — permite instalar plugins, actualizar el core, importar contenido y mil cosas mas sin tocar el panel. Para usarlo dentro de un contenedor Docker, tienes dos opciones:
Opcion 1: Ejecutar dentro del contenedor
docker exec -it mi-wp wp plugin list
Esto ejecuta wp plugin list dentro del contenedor mi-wp. Funciona pero es verboso.
Opcion 2: Crear un alias
Agrega esto a tu ~/.bashrc o ~/.zshrc:
alias wp='docker exec -it mi-wp wp'
Ahora wp plugin list funciona como si WP-CLI estuviera instalado globalmente. Solo asegurate de que el nombre del contenedor (mi-wp) coincida con el tuyo.
Eliminar el Entorno: docker-compose down
Limpiar es tan facil como levantar. Dependiendo de que quieras eliminar:
docker compose stop— detiene los contenedores sin eliminarlos. Los datos persisten.docker compose down— elimina los contenedores pero conserva los volumenes (tus datos siguen intactos).docker compose down -v— elimina contenedores Y volumenes. Esto BORRA la base de datos y todo. Usalo solo cuando quieras empezar desde cero.docker compose down --rmi local— ademas de contenedores y volumenes, elimina las imagenes locales. Necesitas bajar las imagenes de nuevo si las quieres usar despues.
La combinacion mas comun durante desarrollo es docker compose down (stop y clean containers sin perder datos) seguido de docker compose up -d (reconstruir con los mismos volumenes).
Conclusion: Desarrollo Profesional Sin Contratiempos
Docker no es el futuro del desarrollo WordPress — es el presente. Las agencies y desarrolladores profesionales en Chile ya usan contenedores para gestionar docenas de proyectos sin conflictos de entorno. La curva de aprendizaje existe, pero se cruza en una tarde. Una vez que tienes tu primer docker-compose.yml funcionando, clonar ese entorno a otro proyecto es copiar un archivo.
Los beneficios concretos: cero conflictos de version de PHP, bases de datos aisladas por proyecto, el mismo stack en tu laptop y en el servidor, y la posibilidad de romper todo y reconstruir en segundos sin afectar nada mas.
En Elevocloud ofrecemos VPS especificamente pensados para desarrolladores que usan Docker. Si necesitas un servidor donde desplegar los contenedores que probaste localmente, nuestros planes VPS vienen con los recursos y el acceso root que Docker requiere.
Articulos relacionados: Hosting para desarrolladores WordPress y Node.js · Git deploy con GitHub Actions y cPanel · Optimizar velocidad de tu hosting WordPress