Instalación local de WordPress en contenedores Docker
En esta entrada veremos como tener un WordPress local, para poder hacer pruebas, usando contenedores Docker. Usaremos docker-compose, os dejo aquí el manual de como instalarlo.
Creamos un directorio donde guardaremos:
- El fichero de configuración (docker-compose.yml)
- Los datos de los contenedores que no queremos que se borren si se eliminan los contenedores
- La base de datos
- Los datos del servidor web
mkdir wp cd wp mkdir mysql mkdir html
- Creamos los directorios
nano docker-compose.yml
- Creamos el fichero de configuración
version: '3.8'
services:
db:
container_name: wp_db
image: mariadb
ports:
- 3313:3306
volumes:
- /home/meru/wp/mysql:/var/lib/mysql
restart: always
environment:
- MARIADB_ROOT_PASSWORD=passwordROOT1234?
- MARIADB_DATABASE=wp
- MARIADB_USER=wp
- MARIADB_PASSWORD=passwordWP9876!
wp:
container_name: wp
image: wordpress
depends_on:
- db
ports:
- 8002:80
volumes:
- /home/meru/wp/html:/var/www/html
restart: always
environment:
- WORDPRESS_DB_HOST=wp_db
- WORDPRESS_DB_USER=wp
- WORDPRESS_DB_PASSWORD=passwordWP9876!
- WORDPRESS_DB_NAME=wp
- El fichero de configuración
Explicación del fichero de configuración
- services (db/wp)
- Cada uno de los contenedores que necesitamos
- container_name
- El nombre que tendrá el contenedor
- image
- Que imagen usaremos para crear el contenedor
- ports
- Mapeo de los puertos locales con los puertos del contenedor. Por si tenemos ocupados los puertos por defecto
- puerto_local:puerto_contenedor
- Mapeo de los puertos locales con los puertos del contenedor. Por si tenemos ocupados los puertos por defecto
- volumes
- Mapeo de los directorios locales con los directorios del contenedor. Aquí es donde usamos los directorios que hemos creado antes.
- ruta_directorio_local:ruta_directorio_contenedor
- Mapeo de los directorios locales con los directorios del contenedor. Aquí es donde usamos los directorios que hemos creado antes.
- restart
- Le indicamos que queremos que se vuelva a iniciar el contenedor en caso de reinicio de la máquina local
- depends_on
- Dependencias entre contenedores, el contenedor WordPress (wp) necesita el contenedor con la base de datos (db)
- environments
- Configuraciones del contenedor durante la creación, dependen de la imagen que se use.
- Base de datos (db)
- Le indicamos en nombre de la base de datos, el password del usuario root y un usuario con su contraseña
- WordPress
- Le indicamos el servidor de base de datos a usar, en este caso el otro contenedor (usamos el container_name), y el nombre de la base de datos, usuario y contraseña. Estos últimos datos son los que hemos configurado en el contenedor de base de datos.
- Base de datos (db)
- Configuraciones del contenedor durante la creación, dependen de la imagen que se use.
Ejecución
Ejecutamos el siguiente comando desde el directorio que contenga el fichero docker-compose.yml
docker-compose up -d
- -d (detach) nos permite seguir usando el terminal después de arrancar los contenedores
Si accesdemos mediante navegador a IP_MAQUINA_LOCAL:PUERTO_WP el puerto es el que hemos configurado en el fichero docker-compose.yml (p.e. 192.168.1.140:8002) nos aparecerá el asistente para configurar WordPress.