0
(0)

WordPress es el sistema de gestión de contenido (CMS) más popular del mundo. Más del 40% de la web se ejecuta en WordPress. Docker es un sistema de contenedores que se utiliza para ejecutar su software en un entorno aislado. El concepto de contenedorización no es nuevo en el mundo del desarrollo de software. Pero Docker lo hace muy amigable para los desarrolladores.

En este artículo, le mostraremos cómo instalar un sitio de WordPress en un contenedor Docker.

¿Por qué Docker?

¿Por qué Docker, te preguntarás?

La respuesta es la simplicidad. En Docker, su aplicación está en un contenedor dentro de una imagen. No es necesario realizar una instalación y configuración complicadas para que funcione.

Ventana acoplable WordPress 1Fuente de imagen: Wikimedia creative commons

Sin mencionar que también es más rápido y más fácil migrar/actualizar a otro servidor. Digamos que su WordPress se vuelve muy popular y necesita actualizar su servidor existente. Es fácil hacerlo con Docker, ya que todo ya está en contenedores. Si desarrolla algo con Docker, luego de la implementación, funciona en todas partes.

Instalación de la ventana acoplable

En este artículo, instalaremos un motor Docker dentro del servidor Ubuntu.

Antes de instalar cualquier cosa, si tiene una versión anterior de Docker instalada en su sistema, elimínela. Ejecute este comando en su terminal para eliminar todas las versiones anteriores de Docker.

sudo apt autoremove docker docker-engine docker.io containerd runc

Ahora comencemos nuestra instalación:

  1. Actualice sus índices de paquetes locales ejecutando apt-get update e instale dependencias para el motor de Docker.
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
  1. Agregue la clave GPG oficial de Docker.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. Configure el repositorio.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Instale la última versión del motor Docker.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. Verifique la instalación de Docker ejecutando una imagen de hola mundo.
sudo docker run hello-world

Si esta imagen de Docker hello-world se ejecuta sin ningún error, entonces felicidades. Ha instalado correctamente Docker en su máquina Ubuntu Linux.

Instalación de Docker Desktop

Si es un usuario de escritorio de Linux y desea instalar Docker para su propósito de desarrollo, entonces el escritorio de Docker debería ser el candidato preferido en comparación con el motor de Docker. Docker Desktop proporciona una experiencia unificada y una forma independiente de la plataforma para crear, ejecutar y enviar imágenes de Docker.

Escritorio acoplable

El escritorio de Docker en Linux se ejecuta dentro de una máquina virtual, lo cual es bastante opuesto al modelo de kernel compartido del motor de Docker. Es por eso que su CPU debe ser compatible con la tecnología de virtualización y Linux KVM para que Docker Desktop funcione. Puede comprobar el estado de virtualización en la configuración de UEFI/BIOS. Docker Desktop es compatible con las principales distribuciones de Linux como Ubuntu, Debian y fedora.

La necesidad de usar una máquina virtual para el escritorio de Docker es múltiple. Algunos de ellos se describen a continuación.

  1. El uso de una máquina virtual brinda un rendimiento y experiencias consistentes en el escritorio docker en todas las plataformas (Windows, Linux, macOS, Raspberry Pi, etc.).
  2. Como los usuarios se apegan a la versión de lanzamiento de soporte a largo plazo de su distribución, no obtienen los beneficios de las últimas funciones del kernel. El uso de una VM resuelve este problema. Ahora Docker puede seleccionar su versión de Kernel y puede funcionar con el último kernel de Linux.
  3. El uso de una máquina virtual también brinda seguridad al usuario. Como sabemos, cualquiera puede cargar imágenes en Docker Hub. A veces, las imágenes pueden contener algún código malicioso que puede explotar su escritorio. Si coloca tales imágenes maliciosas en su máquina, estas imágenes pueden destruir su máquina.
  4. Como el escritorio de Docker funciona dentro de una máquina virtual, las imágenes maliciosas no pueden afectar a la máquina host. Esto hace que el escritorio de Docker sea un candidato irresistible para probar nuevas imágenes de Docker.

Primero, asegúrese de que su sistema admita KVM, qemu, systemd-init e indicador de aplicación. Debe tener al menos 4 GB de RAM en su sistema.

  1. Desinstale cualquier versión anterior de Docker-desktop instalada en su sistema
sudo apt remove docker-desktop
  1. Para una limpieza y purga completa de todos los archivos de configuración, ejecute el siguiente comando
rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
sudo apt purge docker-desktop
  1. Configure el repositorio de paquetes de Docker ejecutando los siguientes comandos.
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
 
curl -fsSL  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Ahora ve a esto página de lanzamiento y descarga lo último .deb paquete de Docker-desktop.
  2. Instala el .deb paquete usando dpkg.
sudo apt update
sudo apt install ./docker-desktop-<version>-<arch>.deb

Para iniciar el escritorio de Docker, busque en el menú de la aplicación e inicie la aplicación como si fuera normal. Allí se puede ver una guía de bienvenida. Siga la guía para saber más sobre Docker Desktop para Linux y cómo usarlo. También puede crear contenedores e imágenes con la ayuda de la aplicación de escritorio Docker.

Servicios que necesitamos para WordPress

Necesitamos principalmente 3 componentes para ejecutar WordPress dentro de los contenedores Docker. Primero, necesitamos WordPress, luego necesitamos una base de datos MySQL y luego necesitamos un espacio o volumen de almacenamiento.

WordPress almacena todos sus datos generados por el usuario dentro de una base de datos MySQL. Por lo tanto, la base de datos MySQL tiene un papel crucial en nuestra instalación de WordPress.

El almacenamiento o el volumen son necesarios cuando desea instalar nuevos temas o complementos. Estos archivos de temas o complementos se almacenarán dentro del espacio del volumen.

Uso de un archivo Docker-Compose

Como nuestra aplicación necesita más de un servicio, lo mejor es utilizar Docker-compose. Docker compose es una herramienta Docker que inicia y mantiene contenedores Docker y establece una relación entre ellos.

  1. Cree un nuevo archivo docker-compose.yml.
sudo nano docker-compose.yml
  1. De la sección anterior, hemos aprendido que necesitamos principalmente 3 servicios. WordPress mismo, una base de datos MySQL y espacio de volumen. Por lo tanto, nuestro archivo docker-compose se verá así. Puede copiar este archivo docker-compose.yml si no necesita ninguna otra personalización.
version: '3.3'

services:
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
       - wordpress_files:/var/www/html
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: my_wordpress_db_password

   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: my_db_root_password
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: my_wordpress_db_password

volumes:
    wordpress_files:
    db_data:

En el archivo docker-compose anterior, primero definimos WordPress y DB (usando la base de datos MySQL) como un servicio. Entonces WordPress depende de DB para guardar sus datos. Usamos la última imagen de WordPress para construir un contenedor de WordPress. El contenedor de WordPress reserva el puerto 80. Es el puerto predeterminado para los servicios web. Por lo tanto, cuando escribe su URL en su navegador, este contenedor de WordPress le ofrece una respuesta.

Dentro del servicio de la base de datos, usamos la imagen MySQL versión 5.7 para hacer nuestro contenedor. Luego damos todas las credenciales necesarias para hablar con nuestro contenedor de WordPress.

Por fin, definimos nuestros volúmenes. Allí se almacenarán todos los archivos de WordPress y los datos de la base de datos. Si está ejecutando esta configuración dentro de un servidor, entonces debe hacer una copia de seguridad de este volumen con regularidad.

Ejecutar WordPress dentro de Docker

Ahora cree una carpeta o directorio y mueva este archivo docker-compose.yml dentro del directorio. Luego ejecute este comando.

docker-compose up -d

Después de este comando, Docker extraerá todas las imágenes que describimos dentro de nuestro archivo docker-compose.yml y creará un contenedor a partir de él. La primera ejecución puede llevar mucho tiempo, ya que Docker tiene que descargar todos los archivos de DockerHub. Después de configurar las cosas, cuando cargue la dirección IP de su servidor en el navegador, debería ver la pantalla de instalación de WordPress.

¡Felicidades! Ha ejecutado con éxito WordPress en un contenedor Docker. Tenga en cuenta que esto no significa que esté listo para su uso en producción todavía; aún necesita configurar un certificado SSL.

Si desea saber más sobre Docker, puede seguir este artículo para principiantes.

Preguntas frecuentes

¿Puedo ejecutar Docker-desktop simultáneamente con el motor Docker?

Sí, puede ejecutar Docker-desktop y Docker Engine simultáneamente en su máquina. Pero cuando ambos servicios necesitan acceder a los mismos recursos del sistema, como puertos de red o volúmenes, se crea un conflicto entre ellos. Por lo tanto, es recomendable detener un servicio antes de iniciarlo.

Los escritorios Docker se pueden detener fácilmente con la ayuda de una aplicación GUI (interfaz gráfica de usuario). Para detener el motor de Docker, ejecute el siguiente comando.

sudo systemctl stop docker docker.socket containerd
sudo systemctl disable docker docker.socket containerd

¿Cómo iniciar automáticamente el sitio de WordPress después de reiniciar?

Si detuvo su servidor por mantenimiento o para actualizar algunas cosas, puede configurarlo para que inicie automáticamente WordPress después de cada reinicio usando Docker. Solo agrega restart: always parámetro debajo de cada servicio de su archivo docker-compose. Puede ver este parámetro que hemos agregado en el archivo docker-compose.yml.

¿Puedo usar Nginx con Docker-compose y WordPress?

Sí, puede usar Nginx o cualquier otro tipo de servidor para servir contenido de WordPress usando Docker. Nginx también se puede utilizar como proxy inverso. Puede distribuir su tráfico fácilmente instalando Nginx con Docker y WordPress.

¿Le ha parecido útil este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.