¿Cómo usar WordPress con Docker?

¿Qué es Docker?

Docker es una plataforma de software abierta que permite crear, probar e implementar aplicaciones rápidamente. Docker empaqueta el software en unidades llamadas contenedores. Puedes imaginar un contenedor como una pequeña unidad autosuficiente que contiene todo lo necesario para que una aplicación funcione, incluyendo el código, las bibliotecas y las dependencias.

Docker se ha convertido en una herramienta popular para el desarrollo y despliegue de aplicaciones. Puedes ejecutar la misma aplicación en cualquier lugar donde Docker esté instalado, independientemente del sistema operativo con el que estés trabajando y su entorno. Dentro del entorno de Docker se usan mucho dos términos que no hay que confundir: imagen y contenedor.

Imagen:

  • Plantilla de lectura que se utiliza para crear contenedores. Ésta plantilla se puede distribuir y todos los que la obtengan tendrán el mismo código binario.
  • Una imagen es un paquete ejecutale que contiene un sistema de ficheros predefinidos: comandos, variables, librerias, configuraciones, etc.
  • Se pueden crear nuevas imágenes basándose en imágenes anteriores.
  • Pueden ser creadas por nosotros mismos o por la comunidad de desarrolladores. Tenemos docker Hub como el repositiorio más usado para imágenes oficiales y de terceros.

Contenedores:

  • Es una instancia de una imagen. Pueden ser parados, arrancados y ejecutados.
  • Existen herramientas de orquestación como Docker Compose y Kubernetes para administrar aplicaciones compuestas por varios contenedores.
  • Cuando ejecutas una imagen ésta se convierte en contenedor .
  • Si borras un contenedor, lo que hayas hecho dentro de ese servidor se pierde, mientras que si borras una imagen puedes descargártela de nuevo del repositorio de Docker Hub sin que haya grandes consecuencias.

¿Qué es Docker Compose?

Frecuentemente, es necesario ejecutar varios contenedores juntos, y ahí es donde Docker Compose resulta útil.

En lugar de tener que configurar manualmente cada contenedor y todas sus opciones, puedes utilizar Docker Compose para definir cómo se deben ejecutar todos los contenedores. Esta configuración se hace en un archivo especial llamado «docker-compose.yml». En este archivo, se especifica qué contenedores necesitas, qué imágenes debes usar y cómo deben comunicarse entre sí.

Una vez que has creado este archivo de configuración, puedes utilizar un solo comando para que Docker Compose cree y administre todos los contenedores según tus especificaciones. Esto hace que sea mucho más fácil gestionar aplicaciones complejas que consisten en múltiples componentes en contenedores separados.

¿Qué es YAML?

Es un formato de serialización de datos legible por humanos que se utiliza para transportar y almacenar información. Lo podríamos comparar con XML y JSON. Los archivos YAML tiene normalmente la extensión .yaml o yml.
Se ha convertido en un estándar para configurar servicios de aplicaciones, y se usa mucho con la herramienta de Docker Compose.

Docker Compose para WordPress

Ahora, hablemos sobre cómo puedes aprovechar Docker Compose para simplificar la configuración de WordPress. En lugar de lidiar con complejas instalaciones manuales y configuraciones, puedes utilizar Docker Compose, que es una herramienta que utiliza archivos YAML para definir y ejecutar aplicaciones.

Con Docker Compose, puedes configurar WordPress, su base de datos y otros servicios relacionados en cuestión de minutos, incluso si eres nuevo en la gestión de servidores.

Pasos básicos para empezar con Docker y YAML

2. Creación de un Archivo YAML: Una vez instalado Docker, el segundo paso es crear una carpeta en tu ordenador con el nombre del proyecto en el que vas a trabajar. En nuestro caso el projecto se llamará docker-wp-prueba. Esta carpeta que hemos creado la abriremos con un editor de texto. En este caso usamos Visual Studio Code (VS Code).


3. Inserta la información necesaria en tu archivo YAML para ello vamos a https://hub.docker.com/ donde encontrarás un amplio repositorio de imágenes. Dentro de cada imagen encotrarás instrucciones para usarlas.

Si por ejemplo buscas la imagen de WordPress, aparecen las instrucciones de uso para instalarlo con docker compose ya que wordpress necesita de la propia imagen de wordpress y la de mysql. En total habalmos de dos imágenes. Sin embargo si queremos trabajar como auténticas y auténticos profesionales necesitaremos la imagen también de PhpMyAdmin para poder acceder a la interfaz de la base de datos de WordPress y manipularla.

Por otro lado, para trabajar de forma más cómoda también haremos algunas modificaciones en los volúmenes, lo que nos permitirá ver las carpetas de wordpress sin necesidad de acceder a ellas a través de comandos

Este archivo YAML se utiliza Docker Compose para definir y orquestar tres servicios de contenedor:
-un servidor de base de datos MySQL
-una interfaz de administración de bases de datos PhpMyAdmin
-una instancia de WordPress

El archivo YAML garantiza que estos servicios funcionen juntos de manera coordinada.

version: '3.8'
services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: example
      MYSQL_USER: example
      MYSQL_PASSWORD: example
    restart: always
    volumes: 
      - ./db_data:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: wordpress
    restart: always
    ports:
      - '8081:80'

  wordpress:
    image: wordpress:latest
    depends_on: 
      - db 
    volumes:
      - ./:/var/www/html

    ports:
      - 80:80
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: example
      WORDPRESS_DB_PASSWORD: example
      WORDPRESS_DB_NAME: example

4. Pon en marcha Docker y sus servicios, simplemente abriendo la aplicación.

5. Ahora abre la terminal de VS Code y escribe en la terminal docker-compose up -d .
Verás que se descargan con ese comando una serie de fichero dentro del proyecto


6. Ve a tu navegador y escribe localhost. Con esto ya podrás empezar la instalación de wordpress.

wordpress bienvenido


Si te dirijes a la aplicación de Docker verás también que se ha creado un contenedor que antes no estaba


Utilizar Docker y Docker Compose para WordPress

Puedes obtener un entorno de desarrollo y despliegue altamente flexible, escalable y aislado usando Docker y Docker Compose para WordPress que te permite trabajar en un ambiente local que replica fielmente el entorno de producción, lo que simplifica la detección y resolución de problemas.

Además, los equipos pueden implementar aplicaciones de WordPress con facilidad en diferentes servidores sin preocuparse por las diferencias de configuración.