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

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

joshua-avatar

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. 👇