Cómo crear una imagen y su contenedor Docker con un servidor web Nginx y PHP. Cómo probar el servidor web con la página de test de PHP. Cómo crear un fichero index.php dentro del servidor web contenedor Docker.

Requisitos para crear contenedor con Nginx y PHP

El único requisito es disponer de Docker instalado en el equipo anfitrión (sea Linux o Windows), como indicamos en estos artículos:

En uno de los contenedores Docker de este tutorial (en concreto en docker-web-1) necesitaremos disponer del editor de ficheros de texto nano, para instalarlo en el contendor, seguiremos los pasos del siguiente tutorial:

El equipo anfitrión debe tener conexión a Internet.

Crear imagen y contenedor Docker con Nginx y PHP

Para desplegar un servidor web con PHP, accederemos a una carpeta del equipo desde el shell de comandos (cualquier carpeta) y crearemos un fichero con el nombre compose.yaml y con el siguiente contenido:

En la misma carpeta, crearemos un fichero con el nombre cf.cnf y el siguiente contenido:

Desde la línea de comandos, en la misma carpeta donde hayamos creado los dos ficheros anteriores, ejecutaremos el siguiente comando docker:

Si todo es correcto, Docker descargará y desplegará las imágenes y contenedores respectivos para Nginx y para PHP.

Comprobaremos que se han creado los dos contenedores y anotaremos sus nombres (puede que los necesitemos más adelante). Para ello, ejecutaremos el comando docker:

Probar servidor web con Nginx y PHP en Docker

Para comprobar que nuestro servidor web con Nginx y PHP funciona correctamente, añadiremos un fichero con el nombre index.php, en la carpeta /var/www/html del contenedor de Nginx (llamado docker-web-1). Para ello, ejecutaremos el siguiente comando:

En el editor nano, añadiremos el contenido siguiente:

Guardaremos pulsando Control + O y cerraremos la edición pulsando Control + X.

Ahora podremos probar el servidor web con PHP abriendo un navegador desde cualquier equipo de la red e introduciendo la URL:

http://IP_Equipo_Anfitrión:8080

(Sustituiremos IP_Equipo_Anfitrión por la IP del equipo anfitrión de Docker)

Si todo es correcto, nos mostrará la página de pruebas de PHP del servidor web Nginx en el contenedor Docker:

Podremos consultar el fichero de errores y el de log de accesos del servidor web. Para ello, desde el shell de comandos del equipo anfitrión ejecutaremos el siguiente comando Docker:

Nos mostrará (actualizándose automáticamente) el contenido de los ficheros access.log y error.log del contenedor Docker de Nginx.