Cómo instalar PrestaShop en local con Docker (contenedor)
¿Por qué usar Docker para instalar PrestaShop en local?
Si alguna vez has intentado montar un entorno de desarrollo para PrestaShop, sabrás que puede ser un dolor de cabeza: necesitas un servidor web, PHP con extensiones concretas, MySQL, configurar permisos... Con Docker, todo este proceso se simplifica enormemente.
Docker te permite crear "contenedores" que funcionan como pequeñas máquinas virtuales ligeras, donde cada servicio (base de datos, servidor web, aplicación) corre de forma aislada pero coordinada. Para un proyecto como PrestaShop, esto significa que puedes tener tu tienda funcionando en tu ordenador en cuestión de minutos, sin ensuciar tu sistema operativo con instalaciones complejas.
En esta guía, voy a explicarte paso a paso cómo instalar PrestaShop en local con Docker. No necesitas ser un experto en DevOps; solo tener paciencia y seguir las instrucciones al pie de la letra. Al final, tendrás tu tienda de prueba funcionando en http://localhost:8080.
Requisitos previos antes de empezar
Antes de lanzarnos a instalar PrestaShop con Docker, asegúrate de tener lo siguiente:
- Docker Desktop instalado en tu ordenador (disponible para Windows, macOS y Linux).
- Docker Compose (normalmente viene incluido con Docker Desktop).
- Al menos 4 GB de RAM libre para que los contenedores funcionen con fluidez.
- Un terminal o línea de comandos (PowerShell, Terminal, etc.).
Comprobar que Docker funciona
Abre tu terminal y ejecuta:
docker --version
docker compose version
Si ambos comandos devuelven algo como Docker version 24.0.7 y Docker Compose version v2.24.0, estás listo para continuar.
Instalar PrestaShop con Docker Compose: la forma más fácil
La forma más recomendada de instalar PrestaShop en local con Docker es usando Docker Compose. Este archivo define todos los servicios necesarios (aplicación y base de datos) y los lanza juntos con un solo comando.
Paso 1: Crear la estructura de carpetas
Primero, crea una carpeta para tu proyecto. Puedes llamarla prestashop-docker o como prefieras. Dentro de ella, crearemos el archivo de configuración.
mkdir prestashop-docker
cd prestashop-docker
Paso 2: Crear el archivo docker-compose.yml
Aquí está la clave de todo. Vamos a crear un archivo llamado docker-compose.yml con el siguiente contenido:
version: '3.8'
services:
prestashop:
image: prestashop/prestashop:latest
container_name: prestashop_app
ports:
- "8080:80"
environment:
- PS_DOMAIN=localhost:8080
- DB_SERVER=db
- DB_NAME=prestashop
- DB_USER=prestashop
- DB_PASSWD=prestashop
volumes:
- prestashop_data:/var/www/html
depends_on:
- db
restart: unless-stopped
db:
image: mysql:8.0
container_name: prestashop_db
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=prestashop
- MYSQL_USER=prestashop
- MYSQL_PASSWORD=prestashop
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
volumes:
prestashop_data:
db_data:
Este archivo es el corazón de la instalación de PrestaShop con Docker Compose. Vamos a desglosarlo:
- prestashop: el contenedor principal con la imagen oficial de PrestaShop. Mapea el puerto 8080 de tu ordenador al puerto 80 del contenedor.
- db: un contenedor con MySQL 8.0 que almacenará los datos de tu tienda.
- volumes: son discos virtuales que persisten los datos aunque borres los contenedores.
Paso 3: Lanzar los contenedores
Con el archivo guardado, ejecuta en la terminal (dentro de la carpeta prestashop-docker):
docker compose up -d
La primera vez, Docker descargará las imágenes, lo que puede tardar unos minutos dependiendo de tu conexión. Verás una salida similar a esta:
[+] Running 3/3
✔ Network prestashop-docker_default Created
✔ Container prestashop_db Started
✔ Container prestashop_app Started
Paso 4: Completar la instalación desde el navegador
Abre tu navegador y ve a http://localhost:8080. Deberías ver el asistente de instalación de PrestaShop.
[TIP] Si no carga nada, espera 30 segundos más; MySQL necesita arrancar antes que la aplicación.
En el asistente, selecciona tu idioma y haz clic en "Siguiente". Acepta la licencia y continúa.
Paso 5: Configurar la base de datos
Aquí viene el momento crítico. En el paso de configuración de la base de datos, introduce estos datos:
- Dirección del servidor de base de datos:
db(así se llama el servicio en Docker Compose, no useslocalhost). - Nombre de la base de datos:
prestashop - Usuario:
prestashop - Contraseña:
prestashop - Deja el prefijo por defecto (
ps_).
Haz clic en "Probar conexión" y deberías ver un mensaje verde de éxito.
Paso 6: Configurar la tienda y crear el administrador
Ahora completa la información de tu tienda:
- Nombre de la tienda: el que quieras (ej. "Mi Tienda de Pruebas").
- Actividad principal: elige la que más se ajuste.
- País: tu país.
En el apartado de cuenta de administrador, crea un usuario y contraseña para acceder al panel de control. Guárdalos bien, los necesitarás siempre.
Finaliza la instalación y ¡listo! Tu PrestaShop en local con Docker está funcionando.
Alternativa rápida: usar solo la imagen de PrestaShop
Si no quieres usar Docker Compose (aunque te lo recomiendo encarecidamente), puedes lanzar un contenedor suelto con el comando docker run. Pero ten en cuenta que necesitarás una base de datos externa o crear otro contenedor manualmente.
docker run -d -p 8080:80 -e PS_DOMAIN=localhost:8080 --name prestashop prestashop/prestashop:latest
Este comando arranca PrestaShop, pero sin base de datos configurada. No es el método más limpio para instalar PrestaShop con Docker, así que si buscas una solución completa, quédate con Docker Compose.
Configuraciones adicionales útiles
Cambiar el puerto de acceso
Si el puerto 8080 está ocupado, puedes cambiarlo en el archivo docker-compose.yml. Por ejemplo, para usar el puerto 8081:
ports:
- "8081:80"
Activar el modo de desarrollo
Si vas a desarrollar módulos o temas, es útil activar el modo debug de PrestaShop. Edita el archivo config/defines.inc.php dentro del contenedor o añade variables de entorno:
environment:
- PS_DEV_MODE=1
Añadir módulos o temas personalizados
Puedes montar carpetas locales dentro del contenedor para añadir tus módulos:
volumes:
- ./modulos:/var/www/html/modules
- ./temas:/var/www/html/themes
Comandos esenciales de Docker para tu día a día
Estos comandos te serán muy útiles mientras trabajes con tu PrestaShop en contenedor Docker:
- Ver contenedores activos:
docker ps - Ver logs de PrestaShop:
docker logs prestashop_app - Entrar al contenedor:
docker exec -it prestashop_app bash - Detener todo:
docker compose stop - Reiniciar todo:
docker compose restart - Borrar todo (incluidos datos):
docker compose down -v
[WARNING] El comando docker compose down -v borra los volúmenes, es decir, eliminará todos los datos de tu tienda. Úsalo solo si quieres empezar de cero.
Solución de problemas comunes (FAQ)
"No puedo acceder a http://localhost:8080"
- Comprueba que los contenedores están corriendo:
docker ps. - Espera 1-2 minutos la primera vez, la instalación es lenta.
- Revisa los logs:
docker logs prestashop_app.
"Error de conexión a la base de datos"
- Asegúrate de que en el asistente de instalación pones
dbcomo servidor, nolocalhost. - Verifica que las credenciales coinciden con las del archivo
docker-compose.yml.
"La página carga pero sin estilos ni imágenes"
Esto suele pasar por un problema con el dominio. Asegúrate de que en el asistente pusiste localhost:8080 como dominio y que la variable PS_DOMAIN está bien definida.
"Quiero usar una versión anterior de PrestaShop"
Cambia la etiqueta de la imagen en docker-compose.yml:
image: prestashop/prestashop:1.7.8.10
"¿Puedo usar MariaDB en lugar de MySQL?"
Sí, solo cambia la imagen del servicio db a mariadb:10.6 y ajusta las variables de entorno si es necesario.
Ventajas de usar Docker para PrestaShop
Instalar PrestaShop en local con Docker tiene beneficios enormes:
- Reproducibilidad: el mismo archivo
docker-compose.ymlfunciona en cualquier ordenador. - Aislamiento: tu sistema operativo no se llena de dependencias.
- Velocidad: puedes destruir y recrear el entorno en minutos.
- Colaboración: compartir tu configuración con otros desarrolladores es tan fácil como enviar un archivo.
Conclusión y próximos pasos
Has conseguido instalar PrestaShop en local con Docker siguiendo estos sencillos pasos. Ahora tienes un entorno de desarrollo completo y aislado donde puedes experimentar sin miedo a romper nada.
Si quieres llevar tu tienda a producción, recuerda que necesitarás un servidor dedicado o un VPS. En ese caso, plataformas como Syspanel (accesible en el puerto 2106) pueden ayudarte a gestionar tus sitios web con un panel de control amigable, aunque para el desarrollo local, Docker es la opción perfecta.
Te recomiendo que practiques:
- Instalando módulos desde el panel de administración.
- Creando un tema personalizado.
- Probando diferentes versiones de PHP o MySQL cambiando las imágenes.
La curva de aprendizaje de Docker merece la pena. En poco tiempo, instalar PrestaShop con Docker Compose se convertirá en algo natural para ti.
[INFO] Si en algún momento te sientes perdido, recuerda que puedes detener todo con docker compose stop y retomarlo cuando quieras con docker compose start. No hay prisa, y cada error es una oportunidad para aprender.
¿Tienes alguna duda concreta sobre cómo instalar PrestaShop en local con Docker? Déjala en los comentarios y estaré encantado de ayudarte a resolverla.
