
🐳 Cómo levantar un entorno de desarrollo de WordPress con Docker e importar una copia existente

Joshua A. Díaz Robayna / 2 min read / 2/18/2025
Si te han pasado un sitio de WordPress para trabajar en local y tienes un backup en .sql
, .gz
o un paquete generado con Duplicator, en este artículo te explico cómo restaurarlo en un entorno basado en Docker de forma sencilla y eficiente.
🛠️ Paso 1: Configurar Docker con WordPress y MySQL
Crea un archivo docker-compose.yml
en una carpeta vacía y agrega lo siguiente:
version: '3.8'
services:
wordpress:
image: wordpress:latest
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: root
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
volumes:
- db_data:/var/lib/mysql
volumes:
wordpress_data:
db_data:
Esto crea dos contenedores:
✅ WordPress en localhost:8080
✅ MySQL con la base de datos wordpress
y usuario root
Ejecuta:
docker-compose up -d
🔄 Paso 2: Importar la Base de Datos
📂 Si tienes un archivo .sql
Usa el siguiente comando para importar la base de datos al contenedor de MySQL:
docker exec -i tu_contenedor_db mysql -u root -proot wordpress < backup.sql
Para encontrar el nombre del contenedor MySQL, usa:
docker ps
📦 Si tienes un backup .gz
Si el archivo está comprimido en .gz
, primero descomprímelo:
gunzip backup.sql.gz
Y luego usa el mismo comando de importación.
🔗 Actualizar la URL en la base de datos
Si el sitio original estaba en https://midominio.com
y ahora lo estás corriendo en http://localhost:8080
, debes actualizarlo en la base de datos.
Ejecuta este comando dentro del contenedor de MySQL para cambiar la URL en la tabla wp_options
:
docker exec -i tu_contenedor_db mysql -u root -proot wordpress -e \
"UPDATE wp_options SET option_value = 'http://localhost:8080' WHERE option_name IN ('siteurl', 'home');"
O si prefieres hacerlo manualmente:
1️⃣ Accede a phpMyAdmin en http://localhost:8080/phpmyadmin
(si lo tienes configurado).
2️⃣ Busca la tabla wp_options.
3️⃣ Edita los valores de siteurl
y home
y cambia la URL antigua por http://localhost:8080
.
🔄 Actualizar URLs en todo el contenido
Para cambiar enlaces internos en posts, páginas y otros datos serializados, usa WP-CLI con este comando:
docker exec -it tu_contenedor_wordpress wp search-replace 'https://midominio.com' 'http://localhost:8080' --skip-columns=guid
🛠️ Si tienes un paquete de Duplicator
1️⃣ Descomprime el paquete y coloca los archivos en wordpress_data
.
2️⃣ Accede a http://localhost:8080/installer.php
y sigue los pasos del asistente.
🎯 Últimos Ajustes
Después de importar la base de datos, verifica:
🔹 Permisos: Asegúrate de que wp-content/uploads
tiene permisos correctos:
docker exec -it tu_contenedor_wordpress chown -R www-data:www-data /var/www/html/wp-content/uploads
🚀 Conclusión
Ahora tienes un entorno de WordPress corriendo en Docker con una copia restaurada. Puedes desarrollar sin miedo, probar cambios y luego subir todo a producción.
¿Usas Docker en tu flujo de trabajo? Cuéntame en los comentarios. 👇