|
|
- # Crea tu propio servidor de WordPress con Docker
-
- 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.
-
- ## Archivo docker-compose.yml
-
- 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.`
-
- ```bas
- $ mkdir wordpress
- gmarx@gmarx-MacBookAir:~/wordpress$ vi docker-compose.yml
- ```
-
- y agrega el siguiente código al archivo `docker-compose.yml`:
-
- ```yaml
- 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).
-
- ## Arrancando el servidor
-
- 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:
-
- ```bash
- 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í:
-
- ![wordpress](/home/gmarx/Pictures/wordpress.png)
-
- 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.
-
- ![install-wp2](/home/gmarx/Pictures/install-wp2.png)
-
- Listo, ahora solo tienes que hacer *login* con tu nombre de usuario y contraseña...![install_wp3](/home/gmarx/Pictures/install_wp3.png)
-
- Finalmente debes poder entrar al sitio en modo administrador para poder gestionarlo y configurarlo a tu antojo, como un sitio de WordPress.
-
-
-
-
-
- ![wordpress-online](/home/gmarx/Pictures/wordpress-online.png)
-
-
-
- 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` .
-
-
-
-
|