Cómo crear un container de Docker con PHP 8, Nginx y MySQL

Configura fácilmente un entorno PHP 8.2 con Nginx y MySQL usando Docker. Clona el proyecto y sigue los pasos para tener tu ambiente listo en minutos.
David Quiñones

En ocasiones es necesario contar con un entorno de trabajo en PHP limpio para iniciar un nuevo proyecto o hacer experimentos. Este recurso gratuito te ayudará a configurar un ambiente de desarrollo de manera rápida utilizando Docker.

¿Cuál será el resultado final?

Al finalizar la instalación, contarás con:

  • Un entorno de trabajo basado en PHP 8.2.13 con Nginx (nginx:stable-alpine) como servidor web.
  • Un container de MySQL 8.0.37 para gestionar bases de datos.
  • Acceso web a través de la URL http://envphp.local.

Prerequisitos

Antes de comenzar, asegúrate de contar con lo siguiente:

  • Docker versión 23 o superior
  • Docker Compose versión v1.29.2 o superior
  • Conocimientos básicos de comandos Docker (puedes revisar esta lista de comandos Docker)

Si aún no tienes Docker instalado, puedes consultar la documentación oficial: https://docs.docker.com/engine/install/

Pasos para la instalación

Clonar el proyecto

Ejecuta el siguiente comando para clonar el repositorio que contiene el entorno preconfigurado.

git clone git@github.com:dqblanco/help-commands.git

Copiar archivos a tu proyecto

Copia la carpeta interna ubicada en ./help-commands/Docker/EnvPHP/ hacia la carpeta de tu proyecto.

cd ~/Documents/Projects/
mkdir myproject
cp -R ~/Documents/Projects/help-commands/Docker/EnvPHP/* ~/Documents/Projects/myproject/

Nota: Recuerda cambiar la ruta ~/Documents/Projects/ por la ruta que usas para tus proyectos.

Dentro de myproject deberías tener la carpeta docker.

Acceder a la carpeta docker del proyecto.

cd ~/Documents/Projects/myproject/docker

Configurar el entorno

Duplica el archivo .env.dist, cambiando el nombre a .env

cp .env.dist .env

Agregar el nuevo host

Abre el archivo de hosts.

sudo vim /etc/hosts

Agrega las siguientes la linea.

127.0.0.1    envphp.local

Guarda y cierra el archivo.

Iniciar los containers

Ejecuta el siguiente comando para iniciar los containers en segundo plano.

docker compose up -d

Si todo está bien, deberías poder acceder a http://envphp.local/ y ver la ejecución del index.php.

Acceder al container

Si necesitas entrar al entorno de trabajo dentro del container.

docker exec -it envphp-workspace bash

Nginx apunta al carpeta public del proyecto.

Sobre Mysql

Para conectarte a MySQL:

  • Usuario: root

  • Contraseña: root

  • Host: 127.0.0.1

  • Puerto: 3306

Este recurso es ideal para agilizar la configuración de un entorno PHP sin preocuparse por la instalación manual de cada servicio. ¡Descárgalo y pruebalo en tu próximo proyecto! 🚀

Comparte esta publicación