Wordpress es un gestor de contenidos enfocado en la creación de páginas Web y especializado en Blogs. A pesar de tener más de 18 años desde su lanzamiento, sigue siendo una de las plataformas más usadas, ya sea como un servicio instalado en tu propio servidor o a través del servicio de hospedaje que la compañía ofrece.
En este post, realizado en Wordpress, te enseñare como montar una imagen de WordPress con Docker. Para esto, supondremos que ya tienes una noción básica de Docker. Sino hecha un vistazo a esta guía básica sobre su instalación y uso.
Docker cuenta con una serie de comandos para crear/montar imágenes en minutos, entre ellas esta docker-compose
y docker stack deploy
, esto es posible a partir de un archivo en formato yml
que le indica como montar la imagen siempre de la misma manera; y así tener reproducibilidad. Por lo tanto crea una carpeta para el proyecto y crea el archivo (con vi, nano o tu editor de preferencia) docker-compose.yml.
$ mkdir wordpress
gmarx@gmarx-MacBookAir:~/wordpress$ vi docker-compose.yml
y agrega el siguiente código al archivo docker-compose.yml
:
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: admin
WORDPRESS_DB_PASSWORD: examplePass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: admin
MYSQL_PASSWORD: exmaplePass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
El archivo le indica a Docker las imágenes y versión que se usaran (services
) en este caso se etiquetan dos: wordpress
y db
; por lo tanto tendremos dos contenedores. En cada caso se indican los puertos que estarán expuestos (para wordpress
8080 y db
ninguno), las variables (environment) usadas en cada contenedor y sus respectivos valores; en estas variables no olvides indicar el mismo usuario y su respectivo password para wordpress pueda accesar a la base de datos de mysql . En cada servicio también se indican de que manera se conectan los volúmenes de datos y a donde apuntan (origen:destino).
Ahora para probar el contenedor solo ejecuta docker-compose up -d
desde la carpeta donde esta el archivo docker-compose.yml
y obtendrás unos resultados similares a los siguientes:
gmarx@gmarx-MacBookAir:~/wordpress$ docker-compose up -d
Creating network "wordpress_default" with the default driverCreating volume "wordpress_wordpress" with default driverCreating volume "wordpress_db" with default driverPulling wordpress (wordpress:)...latest: Pulling from library/wordpress69692152171a: Already exists2040822db325: Pull complete9b4ca5ae9dfa: Pull completeac1fe7c6d966: Pull complete5b26fc9ce030: Pull complete3492f4769444: Pull complete1dec05775a74: Pull complete77107a42338e: Pull completef58e4093c52a: Pull completed32715f578d3: Pull complete7a73fb2558ce: Pull complete667b573fcff7: Pull complete75e2da936ffe: Pull complete759622df3a7b: Pull complete
c2f98ef02756: Pull complete
50e11300b0a6: Pull complete
de37513870b9: Pull complete
f25501789abc: Pull complete
0cf8e3442952: Pull complete
d45ce270a7e6: Pull complete
534cdc5a6ea6: Pull complete
Digest: sha256:e9da0d6c867249f364cd2292ea0dd01d7281e8dfbcc3e4b39b823f9a790b237b
Status: Downloaded newer image for wordpress:latest
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
69692152171a: Already exists
1651b0be3df3: Pull complete
951da7386bc8: Pull complete
0f86c95aa242: Pull complete
37ba2d8bd4fe: Pull complete
6d278bb05e94: Pull complete
497efbd93a3e: Pull complete
a023ae82eef5: Pull complete
e76c35f20ee7: Pull complete
e887524d2ef9: Pull complete
ccb65627e1c3: Pull complete
Digest: sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa
Status: Downloaded newer image for mysql:5.7
Creating wordpress_wordpress_1 ... done
Creating wordpress_db_1 ... done
si nada sale mal quiere decir que ahora tienes un contenedor listo para configurar con wordpress. Para lograr esto visita la página localhost:8080
en un explorador como mozilla. El resultado será algo así:
ahora solo necesitas seguir los pasos que se te irán presentando en el propio navegador para que se defina el nombre del sitio, username principal, contraseña, entre otras cosas. Para finalizar nececitas hacer click en el botón de instalar WordPress.
Listo, ahora solo tienes que hacer login con tu nombre de usuario y contraseña...
Finalmente debes poder entrar al sitio en modo administrador para poder gestionarlo y configurarlo a tu antojo, como un sitio de WordPress.
Recuerda que este contenedor quedó vinculado con un volumen creado por Docker, el volumen se llama wordpress
y en éste se almacenara todos los datos del servicio de WordPress, por lo que el contenedor tendrá persistencia de datos.
Puedes probar creando una entrada en el blog y después detener el contenedor ejecutando docker-compose down
, desde la misma carpeta del proyecto y después volver a arrancar el servicios con docker-compose up -d
.