Compartir comentarios
Las respuestas se generan en base a la documentación.

Contenedorizar una aplicación PHP

Requisitos previos

  • Has instalado la última versión de Docker Desktop.
  • Tienes un cliente de git. Los ejemplos de esta sección utilizan un cliente de git basado en línea de comandos, pero puedes utilizar cualquier cliente.

Descripción general

Esta sección te guía a través de la contenedorización y ejecución de una aplicación PHP.

Obtener la aplicación de ejemplo

En esta guía, utilizarás una aplicación PHP preconstruida. La aplicación utiliza Composer para la gestión de dependencias de bibliotecas. Servirás la aplicación a través de un servidor web Apache.

Abre una terminal, cambia de directorio a un directorio en el que quieras trabajar y ejecuta el siguiente comando para clonar el repositorio.

$ git clone https://github.com/docker/docker-php-sample

La aplicación de ejemplo es una aplicación básica de "hola mundo" y una aplicación que incrementa un contador en una base de datos. Además, la aplicación utiliza PHPUnit para las pruebas.

Inicializar los recursos de Docker

Ahora que tienes una aplicación, puedes usar docker init para crear los recursos de Docker necesarios para contenedorizar tu aplicación. Dentro del directorio docker-php-sample, ejecuta el comando docker init en una terminal. docker init proporciona cierta configuración predeterminada, pero tendrás que responder algunas preguntas sobre tu aplicación. Por ejemplo, esta aplicación utiliza la versión 8.2 de PHP. Consulta el siguiente ejemplo de docker init y utiliza las mismas respuestas para tus indicaciones.

$ docker init
Welcome to the Docker Init CLI!

This utility will walk you through creating the following files with sensible defaults for your project:
  - .dockerignore
  - Dockerfile
  - compose.yaml
  - README.Docker.md

Let's get started!

? What application platform does your project use? PHP with Apache
? What version of PHP do you want to use? 8.2
? What's the relative directory (with a leading .) for your app? ./src
? What local port do you want to use to access your server? 9000

Ahora deberías tener el siguiente contenido en tu directorio docker-php-sample.

├── docker-php-sample/
│ ├── .git/
│ ├── src/
│ ├── tests/
│ ├── .dockerignore
│ ├── .gitignore
│ ├── compose.yaml
│ ├── composer.json
│ ├── composer.lock
│ ├── Dockerfile
│ ├── README.Docker.md
│ └── README.md

Para obtener más información sobre los archivos que agregó docker init, consulta lo siguiente:

Ejecutar la aplicación

Dentro del directorio docker-php-sample, ejecuta el siguiente comando en una terminal.

$ docker compose up --build

Abre un navegador y visita la aplicación en http://localhost:9000/hello.php. Deberías ver una aplicación sencilla de "hola mundo".

En la terminal, presiona ctrl+c para detener la aplicación.

Ejecutar la aplicación en segundo plano

Puedes ejecutar la aplicación desacoplada (detached) de la terminal agregando la opción -d. Dentro del directorio docker-php-sample, ejecuta el siguiente comando en una terminal.

$ docker compose up --build -d

Abre un navegador y visita la aplicación en http://localhost:9000/hello.php. Deberías ver una aplicación sencilla de "hola mundo".

En la terminal, ejecuta el siguiente comando para detener la aplicación.

$ docker compose down

Para obtener más información sobre los comandos de Compose, consulta la referencia de la CLI de Compose.

Resumen

En esta sección, aprendiste cómo puedes contenedorizar y ejecutar una aplicación PHP sencilla usando Docker.

Información relacionada:

Pasos siguientes

En la siguiente sección, aprenderás cómo puedes desarrollar tu aplicación utilizando contenedores de Docker.