Guía Docker - Wordpress

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

Guía de ejemplo de uso de Docker – Instalación Wordpress

Esta guía tiene como objetivo mostrar el uso de Docker utilizando una instalación sencilla
de Wordpress utilizando los contenedores oficiales, tanto de Wordpress como de MySQL.

Es importante hacer notar que en este guía se utilizan comandos multilínea, para indicarle
al interprete de comando que se continuará en la siguiente línea se utiliza el carácter “\”
pero usted puede continuar escribiendo el comando como una solo línea si no desea
agregar este carácter.

Para ejecutar esta guía, será necesario realizar mediante el equipo Ubuntu. Los comandos
de docker se ejecutar directamente por lo que primero es necesario garantizar que su
usuario pertenece al grupo docker con el siguiente comando:

# groups

En la salida del comando deberá aparecer docker como los grupos, si no aparece se debe
agregar:

# sudo usermod -a -G docker misuario

Luego de ejecutar el comando es necesario volver a iniciar sesión.

Ahora procederemos a crear dos volúmenes, los cuales servirán para mantener data de
forma persistente en nuestros contenedores, uno para los datos de MySQL (mysql-data) y
el otro para los datos de Wordpress (wordpress):

# docker volume create mysql-data


# docker volume create wordpress

Para que los contenedores tengan comunicación entre sí, procederemos a crear una red la
cual tendrá como nombre wordpress0 (para ver más detalles de los modos de red se puede
ver la documentación de Docker):

# docker network create --driver=bridge --subnet=172.56.0.0/16 \


--ip-range=172.56.0.0/24 --gateway=172.56.0.254 wordpress0

Con esto, podemos proceder a la descarga de los contenedores, utilizaremos la última


versión que se encuentre disponible de ambos, es necesario esperar a que termine la
descarga antes de iniciar la siguiente:

# docker pull mysql/mysql-server:latest


# docker pull wordpress:latest
Una vez descargados iniciaremos primero el contenedor de MySQL, como es la primera
vez, este tardará un monto en finar su configuración inicial:

# docker run --network=wordpress0 -p 3306:3306 \


--mount source=mysql-data,target=/var/lib/mysql \
--name=mysql1 -d mysql/mysql-server

Algo a notar del comando anterior es que agregamos el contenedor a la red wordpress0,
montamos el volumen mysql-data, se le ponen de nombre al contenedor mysql1 y
exponemos el puerto de mysql (3306). MySQL asigna una contraseña por defecto para root
la cual debemos cambiar posteriormente. Para verificar la contraseña ejecutamos el
siguiente comando:

# docker logs mysql1 2>&1 | grep GENERATED

En caso el comando no muestre nada quiere decir que no ha terminado de inicializar, para
lo cual debemos esperar y volverlo a ejecutar hasta que nos dé resultados. Una vez
tengamos la clave temporal de root podemos iniciar sesión en MySQL:

# docker exec -it mysql1 mysql -uroot -p

Ahora ejecutaremos unos commandos en nuestra base de datos, primero cambiaremos la


clave de root, segundo crearemos la base de datos para wordpress, tercero crearemos un
usuario para que se conecte la plataforma, cuarto le daremos privilegios necesarios (ojo,
ya que es solo un ejemplo se le da más de los que necesita), quinto le damos un flush a los
privilegios y con esto podemos salir presionando CTRL+D (nota: modificar las contraseñas
como considere necesario):

> SET PASSWORD='su_contrasenia_root';


> CREATE DATABASE wordpress;
> CREATE USER 'wp'@'%' IDENTIFIED BY 'password_wp';
> GRANT ALL ON wordpress.* TO 'wp'@'%';
> FLUSH PRIVILEGES;
> CTRL+D

Con todo esto, ya podemos levantar worpress tomando en consideración que la plataforma
utiliza variables de entorno para gestionar sus configuraciones. Dichas variables de
entorno deberán corresponder con lo configurado en el acceso creado a la base de datos,
así como el nombre de nuestro contenedor de mysql (mysql1) ya que se maneja un DNS
interno que traduce el nombre del servicio a su respectiva IP.

Para levantar wordpress ejecutamos el siguiente comando:


docker run --network=wordpress0 -p 80:80 \
--mount source=wordpress,target=/var/www/html \
--name=wordpress1 -d \
-e WORDPRESS_DB_HOST=mysql1 \
-e WORDPRESS_DB_USER=wp \
-e WORDPRESS_DB_PASSWORD=password \
-e WORDPRESS_DB_NAME=wordpress \
wordpress:latest

Con esto podemos cargar localhost en nuestro navegador web y veremos la interfaz de
instalación de wordpress.

Problemas al iniciar wordpress

Debido a que en este curso se hicieron pruebas con VulnerableApp, es posible que esta
aun tenga reservado el puerto 80, para liberarlo debemos detener el contenedor si esta
corriendo y eliminarlo previa a levantar wordpress.

De los siguientes comandos el primero listamos todos los contenedores, aun los
detenidos, el segundo detiene un contenedor (podemos utilizar el nombre o el ID) y el
tercero lo elimina (debe estar detenido):

# docker ps -a
# docker stop ID_CONTENEDOR
# docker rm ID_CONTENEDOR

También podría gustarte