Cómo instalar WordPress con Docker usando Docker Compose

Este artículo cubre cómo configurar wordpress con docker usando docker-compose rápidamente. WordPress requiere la pila LAMP o LEMP, pero la imagen de la ventana acoplable oficial de WordPress contiene PHP y Apache, dejándonos instalar solo la imagen de la ventana acoplable MySQL. Pero para administrar MySQL a través de la interfaz web, también instalaremos la imagen de la ventana acoplable PHPMyAdmin. Docker compose facilita la gestión de la coordinación de procesos dentro de los contenedores. Por lo tanto, antes de comenzar, asegúrese de tener instalada la última versión de docker compose en su máquina host.
Prerrequisitos
Debe tener docker y docker-compose disponibles en su máquina host. Usaremos la versión ‘2’ de docker-compose, por lo tanto, es posible que deba actualizar docker compose en la máquina host. Puede actualizar el docker compose desde el oficial página de github. Una vez que haya actualizado la redacción, busque la versión de la ventana acoplable y la redacción en la máquina host.
root@demohost:~# docker -v Docker version 1.12.3, build 6b644ec root@demohost:~# docker-compose -version docker-compose version 1.10.0, build 4bd6f1a
1. Instale MySQL
Primero definiremos un directorio de proyecto donde todos los recursos serán entretejidos por compose para construir nuestra imagen. Por lo tanto, para empezar, también crearemos docker-compose.yml dentro de nuestro directorio de proyectos.
root@demohost:~# mkdir docker_wp root@demohost:~# cd docker_wp
Cree / edite docker-compose.yml para crear una instancia de MySQL con un montaje de volumen para la persistencia de datos. También hemos especificado nuestras redes de nivel superior con clave ‘back’. Las redes de nivel de servicio (WordPress, PHPMyAdmin) especificarán esta ‘Clave’ para conectarse a redes de nivel superior.
root @ demohost: ~ / docker_wp # vi docker-compose.yml
version: '2' services: database: image: mysql:5.7.17 restart: always volumes: - database_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root networks: - back networks: back: volumes: database_data:
Ahora inicie el contenedor con docker-compose
root@demohost:~/docker_wp# docker-compose up -d Creating network "dockerwp_back" with the default driver Creating volume "dockerwp_db_data" with default driver Pulling database (mysql:5.7.17)... 5.7.17: Pulling from library/mysql -------------------------- -------------------------- a1b9627588c7: Pull complete Digest: sha256:5e2ec5964847dd78c83410f228325a462a3bfd796b6133b2bdd590b71721fea6 Status: Downloaded newer image for mysql:5.7.17 Creating dockerwp_database_1
Listar el contenedor
root@demohost:~/docker_wp# docker ps -a
2. Instale PHPMyAdmin
Para instalar PHPMyAdmin en el contenedor, agregaremos los siguientes fragmentos de código en docker-compose.yml en la sección de servicios.
phpmyadmin: depends_on: - database image: phpmyadmin/phpmyadmin restart: always ports: - 8080:80 environment: PMA_HOST: database MYSQL_ROOT_PASSWORD: root networks: - back
El servicio phpmyadmin depende de nuestro servicio de ‘base de datos’ que hemos definido anteriormente en el archivo docker compose. El docker compose tomará phpmyadmin oficial y el puerto no 8080 del host de la ventana acoplable se asignará al puerto 80 del contenedor. La variable de entorno PMA_HOST define la dirección / nombre de host del servidor MySQL y MYSQL_ROOT_PASSWORD especifica la contraseña raíz para el servidor MySQL y debe ser la misma que el valor MYSQL_ROOT_PASSWORD que se estableció en el servicio ‘base de datos’.
Vuelva a iniciar el grupo de aplicaciones.
root@demohost:~/docker_wp# docker-compose up -d Pulling phpmyadmin (phpmyadmin/phpmyadmin:latest)... latest: Pulling from phpmyadmin/phpmyadmin 0a8490d0dfd3: Pull complete ----------------------------- 98ff89f652db: Pull complete Digest: sha256:942030a8ef4e2ab49ae5d9a60a27c94eed4e9003cd2bd01a62c501b92fdabfda Status: Downloaded newer image for phpmyadmin/phpmyadmin:latest dockerwp_database_1 is up-to-date Creating dockerwp_phpmyadmin_1
Lista de contenedores
root@demohost:~/docker_wp# docker ps -a
Abra su navegador favorito y apúntelo a http: // Docker_Host_IP: 8080, será recibido por la página de inicio de sesión de phpmyadmin. Inicie sesión con el usuario root y la contraseña como root. Si ha establecido el valor del entorno MYSQL_ROOT_PASSWORD en otra cosa, inicie sesión con esa contraseña.
3. Instale WordPress con Docker
Finalmente, configuraremos el contenedor docker de wordpress anteponiendo los siguientes fragmentos de código en la sección de servicios.
wordpress: depends_on: - database image: wordpress:4.6 restart: always volumes: - ./wp-content:/var/www/html/wp-content environment: WORDPRESS_DB_HOST: database:3306 WORDPRESS_DB_PASSWORD: root ports: - 80:80 - 443:443 networks: - back
El servicio de WordPress depende del servicio de ‘base de datos’ y docker compose extraerá wordpress con la versión de docker 4.6. Hemos elegido la versión 4.6 deliberadamente para poder actualizar wordpress en el paso final. La variable de entorno WORDPRESS_DB_HOST se establece en el nombre de host MySQL seguido del puerto no y WORDPRESS_DB_PASSWORD se establece en ‘root’ que hemos asignado en MYSQL_ROOT_PASSWORD en la sección ‘base de datos’. El puerto no 80 y 443 del host de la ventana acoplable se asigna a los puertos de contenedores no 80 y 443. El contenedor de la ventana acoplable de wordpress también está conectado a las redes de nivel superior «back».
Nuestro docker-compose.yml final se ve a continuación.
A continuación, inicie las tres aplicaciones juntas.
root@demohost:~/docker_wp# docker-compose up -d Pulling wordpress (wordpress:4.7.2)... 4.7.2: Pulling from library/wordpress 5040bd298390: Already exists 568dce68541a: Pull complete ----------------------------- Digest: sha256:a0ce5d2666bff9fe17fd8d5c6b5ba3094b7109e97af8c69a0c31057a77e24899 Status: Downloaded newer image for wordpress:4.7.2 dockerwp_database_1 is up-to-date dockerwp_phpmyadmin_1 is up-to-date Creating dockerwp_wordpress_1
Enumere los contenedores.
root@demohost:~/docker_wp# docker ps -a
Acceda al sitio de wordpress apuntando su navegador a http: // Docker_Host_IP Se le pedirá que elija un idioma.
Proporcione el título del sitio, el nombre de usuario, la contraseña, el correo electrónico y haga clic en «Instalar WordPress»
Inicie sesión en el sitio de wordpress escribiendo el nombre de usuario / dirección de correo electrónico y la contraseña que proporcionó en el último paso.
Serás redirigido al panel de WordPress.
Haga clic en complementos en la barra de menú del lado izquierdo. Encontrará dos complementos con el nombre «Akismet» y «Hello Dolly»
Elimine el complemento «Hello Dolly» cambiando al directorio wp-content / plugins del proyecto de wordpress
root@demohost:~/docker_wp# cd wp-content/plugins/ root@demohost:~/docker_wp/wp-content/plugins# ls akismet hello.php index.php root@demohost:~/docker_wp/wp-content/plugins# rm hello.php
Actualice la página, Hello Dolly no aparecerá en la lista ahora. Haga clic en ‘Temas’ en ‘Apariencia’ en la barra lateral izquierda. Los temas predeterminados se enumerarán en esta página.
Como queremos colocar un tema de nuestra elección, navegue al directorio wp-content / themes y elimine los temas.
root@demohost:~/docker_wp# cd wp-content/themes/ root@demohost:~/docker_wp/wp-content/themes# ls index.php twentyfifteen twentyseventeen twentysixteen root@demohost:~/docker_wp/wp-content/themes# rm -rf twenty*
Descarga un tema de tu elección. Descargaremos el tema https://wordpress.org/themes/nisarg/ Descomprima el tema y elimine el archivo zip.
root@demohost:~/docker_wp/wp-content/themes# wget https://downloads.wordpress.org/theme/nisarg.1.2.6.zip root@demohost:~/docker_wp/wp-content/themes# unzip nisarg.1.2.6.zip root@demohost:~/docker_wp/wp-content/themes# rm -rf nisarg.1.2.6.zip
Ahora actualice la página de temas, el tema descargado aparecerá allí. Active el tema haciendo clic en «Activar»
Dado que hemos instalado wordpress versión 4.6, se le pedirá que actualice wordpress. No haga clic en «Actualizar ahora» en esta etapa. Necesitamos cambiar la versión de wordpress en docker-compose.yml. Edite docker-compose y cambie la versión de wordpress de 4.6 a 4.7.2
wordpress: depends_on: - database image: wordpress:4.7.2 ------------------------ ------------------------
Detener / reiniciar el contenedor de wordpress
root@demohost:~# docker stop dockerwp_wordpress_1 root@demohost:~# docker rm dockerwp_wordpress_1 root@demohost:~# docker-compose up -d
Ahora haga clic en «Actualice ahora»
Haga clic en «Actualizar ahora»
El proceso de actualización de WordPress será visible para usted.
Para comprobar la versión de wordpress, haga clic en «Actualizaciones». La versión de wordpress aparecerá en esta página.
Conclusión
En este artículo, hemos cubierto la instalación de WordPress usando docker-compose. Espero que haya disfrutado la lectura y por favor deje sus comentarios y sugerencias.