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
1 2 3 4 |
mkdir wp cd wp mkdir mysql mkdir html |
- Creamos los directorios
1 |
nano docker-compose.yml |
- Creamos el fichero de configuración
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
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
1 |
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.