Un laboratorio WordPress usando Ubuntu Linux y la magia de contenedores Docker

¿Qué te parece usar un server virtual con Ubuntu server desde VirtualBox para crear un laboratorio aislado de WordPress operativo 100% utilizando contendores de Docker? En este post guiarte a través de los pasos para lanzar un contenedor Docker en Ubuntu Server que contenga WordPress para usarlo como laboratorio de pruebas. Aquí te detallo los pasos generales:

Partimos de la base de que tengas creado una máquina virtual usando VirtualBox, por ejemplo. Es muy sencillo, crear el server virtual e instalar Ubuntu server desde la web y una vez arrancado el server seguir los pasos siguientes.

  1. Instalar Docker (si no lo tienes ya instalado):
  • Primero, actualiza tu lista de paquetes:
    sudo apt update
  • Instala algunos paquetes de requisito previo que permitan a apt usar paquetes a través de HTTPS:
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
  • Añade la clave GPG para el repositorio oficial de Docker a tu sistema:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • Añade el repositorio de Docker a las fuentes de APT:
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
  • Actualiza tu base de datos de paquetes e instala Docker:
    bash sudo apt update sudo apt install docker-ce
  • Asegúrate de que Docker se esté ejecutando:
    sudo systemctl status docker
  1. Instalar Docker Compose:
  • Descarga la versión más reciente de Docker Compose:
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • Aplica permisos ejecutables al binario:
    sudo chmod +x /usr/local/bin/docker-compose
  1. Configurar el contenedor de WordPress:
  • Crea un directorio para tu proyecto:
    mkdir mi_wordpress && cd mi_wordpress
  • Crea un archivo docker-compose.yml en tu directorio:
    version: '3.3'
    services:
    db:
    image: mysql:5.7
    volumes:
    - db_data:/var/lib/mysql
    restart: always
    environment:
    MYSQL_ROOT_PASSWORD: somewordpress
    MYSQL_DATABASE: wordpress
    MYSQL_USER: wordpress
    MYSQL_PASSWORD: wordpress
    wordpress:
    depends_on:
    - db
    image: wordpress:latest
    ports:
    - "8000:80"
    restart: always
    environment:
    WORDPRESS_DB_HOST: db:3306
    WORDPRESS_DB_USER: wordpress
    WORDPRESS_DB_PASSWORD: wordpress
    WORDPRESS_DB_NAME: wordpress
    volumes:
    db_data: {}
  • En este archivo, se define un servicio para WordPress y otro para MySQL. Se mapea el puerto 8000 de tu host al puerto 80 en el contenedor de WordPress.
  1. Lanzar los contenedores:
  • Desde tu directorio de proyecto (mi_wordpress), ejecuta:
    sudo docker-compose up -d
  • Esto descargará las imágenes necesarias y arrancará los contenedores.
  1. Acceder a WordPress:
  • Una vez que los contenedores estén en ejecución, deberías poder acceder a WordPress yendo a http://<tu_ip_ubuntu>:8000 en tu navegador.
  1. Usar como laboratorio de pruebas:
  • Ahora puedes usar este entorno para experimentar con WordPress, probar temas, plugins, etc. Todos tus cambios estarán aislados dentro del contenedor y puedes reiniciar desde cero simplemente eliminando y recreando los contenedores.

En la consola Ubuntu puedes ver con : sudo docker ps , los dos contendores ejecutandose. Esta es la magia de los contendores, y luego comprobar que accedes al wordpress para inciarlo desde un navegador.

Para detener y reiniciar el contenedor de WordPress que creaste con Docker Compose y asegurarte de que tus cambios (como entradas, temas, etc.) persistan entre reinicios, puedes seguir estos pasos:

Detener los contenedores:

Para detener los contenedores (WordPress y la base de datos MySQL), usa el siguiente comando en el directorio donde se encuentra tu archivo docker-compose.yml:

sudo docker-compose down

Este comando detendrá y eliminará los contenedores, pero no te preocupes, tus datos no se perderán porque están almacenados en volúmenes que Docker Compose ha creado.

Reiniciar los contenedores:

Para reiniciar tus contenedores, simplemente navega nuevamente al directorio de tu proyecto donde se encuentra el archivo docker-compose.yml y ejecuta:

sudo docker-compose up -d

Esto iniciará los contenedores nuevamente. Si no has eliminado los volúmenes de datos manualmente, todos tus cambios previos (temas, plugins, entradas, etc.) deben estar intactos y disponibles nuevamente.

Persistencia de datos:

Docker Compose maneja la persistencia de datos utilizando volúmenes. En el archivo docker-compose.yml que proporcioné anteriormente, se define un volumen llamado db_data para la base de datos MySQL:

volumes:
  db_data: {}

Este volumen almacena los datos de la base de datos fuera del ciclo de vida del contenedor. Esto significa que incluso si detienes y eliminas el contenedor de la base de datos, los datos en sí mismos no se pierden y estarán disponibles la próxima vez que inicies el contenedor. Lo mismo ocurre con los archivos y configuraciones de WordPress, que se almacenan dentro del contenedor de WordPress pero referenciados al volumen, lo que permite su persistencia.

Notas adicionales:

  • Backup y restauración: Aunque tus datos están persistentes, siempre es una buena práctica realizar copias de seguridad regularmente, especialmente si estás utilizando este entorno para pruebas importantes o desarrollo.
  • Administración de volúmenes: Si alguna vez necesitas eliminar completamente tus datos y empezar desde cero, puedes eliminar los volúmenes utilizando docker volume rm seguido del nombre del volumen. Ten cuidado con este comando, ya que eliminará todos los datos almacenados.
  • Modificaciones: Si realizas cambios en tu archivo docker-compose.yml o deseas actualizar las imágenes a versiones más recientes, puedes hacerlo y luego usar docker-compose up -d para aplicar los cambios. Docker Compose recreará los contenedores según sea necesario.

Siguiendo estos pasos, puedes detener, iniciar y persistir tus datos en el entorno de WordPress utilizando Docker y Docker Compose. Esto te proporciona un sistema flexible y robusto para pruebas y desarrollo.

Recuerda que estos pasos son una guía general y los detalles pueden variar dependiendo de tu configuración específica y las versiones de software. Asegúrate de consultar la documentación oficial de Docker y WordPress para obtener información más detallada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.