Saltar al contenido
Curso Docker y Laravel Sail desde cero
01/10 Dockerizar una aplicación PHP a mano Docker para PHP y Laravel: por qué aprenderlo antes de usar Laravel Sail
Tu lectura Quedan 9 min
Lección 1 de 10 · Dockerizar una aplicación PHP a mano

Docker para PHP y Laravel: por qué aprenderlo antes de usar Laravel Sail

9 min de lectura Docker Engine 29.8

Hola, bienvenido. Docker te permite tener PHP, Nginx y MySQL en tu máquina sin instalarlos, cada uno en su contenedor y con la versión exacta que pide el proyecto. Laravel Sail es Docker por debajo: un compose.yaml y un script que lanza docker compose por ti. Por eso, si entiendes Docker, entiendes Sail, y sabes qué hacer el día que deja de funcionar.

En esta primera lección vamos a ver por qué empezamos por Docker y no por Sail, qué vamos a montar durante el curso y cómo dejar Docker instalado y comprobado en tu sistema, sea Linux, macOS o Windows con WSL2.

Cuando sail up deja de funcionar

Si trabajas con Laravel, lo más probable es que ya uses Sail: creas el proyecto, lanzas sail up y tienes la aplicación, MySQL y Redis funcionando sin haber instalado nada. Y eso está muy bien, porque Sail está pensado justo para que no tengas que pensar en Docker.

El problema llega el día que sail up deja de funcionar. El puerto 3306 está ocupado por un MySQL que tenías instalado en la máquina y el contenedor no arranca. La aplicación devuelve un connection refused contra MySQL justo después de levantar el proyecto. En WSL2 aparecen errores de permisos en storage/ que en otro ordenador no pasaban. O cambias la contraseña de la base de datos en el .env y MySQL sigue sin aceptarla, porque hay un volumen que guarda la base de datos vieja.

Todos esos errores vienen de Docker, y cuando solo conoces Sail no tienes por dónde empezar, porque Sail esconde precisamente las piezas que fallan: los puertos, los volúmenes, la red entre contenedores y la imagen de PHP. Ese es el motivo del curso. Vamos a montar esas piezas a mano, una a una, para que cuando abramos Sail en la segunda sección reconozcas cada línea de su compose.yaml y sepas qué tocar cuando algo se rompa.

¿Y qué es Docker, en pocas palabras? Una imagen es una plantilla con un sistema mínimo y un programa ya instalado, por ejemplo PHP 8.5 con sus extensiones. Un contenedor es esa imagen en marcha, aislado del resto de tu máquina y con su propio sistema de archivos y su propia red. Y Docker Compose describe en un archivo varios contenedores que trabajan juntos, para levantarlos todos con un solo comando. Si quieres el concepto con más calma, lo tienes explicado en el artículo ¿Qué es Docker? La guía definitiva para desarrolladores web (se abre en una pestaña nueva), y en el curso nos vamos a centrar en usarlo.

Lo que queda de esta lección
  1. 02Qué necesitas y qué vamos a montar
  2. 03Docker Engine o Docker Desktop
  3. 042 reglas que te ahorran problemas
  4. 05Comprobar la instalación
Sigue leyendo gratis Este curso es gratuito. Déjanos tu email y te enviamos un enlace para leerlo entero, junto con el resto de cursos gratuitos.

¿Ya lo habías pedido o entras desde otro dispositivo? Escribe el mismo email: recuperas tu acceso y tu avance.