You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Gerardo Marx Chávez-Campos 5d62f8bd6c Update 'Readme.md' 3 years ago
Readme.md Update 'Readme.md' 3 years ago
config-wp.png images 3 years ago
docker-compose.yml initial 3 years ago
install-wp2.png images 3 years ago
install_wp3.png images 3 years ago
wordpress-online.png images 3 years ago
wordpress.png images 3 years ago

Readme.md

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.

$ 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).

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:

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

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

​ Listo, ahora solo tienes que hacer login con tu nombre de usuario y contraseña...

install_wp3

Finalmente debes poder entrar al sitio en modo administrador para poder gestionarlo y configurarlo a tu antojo, como un sitio de WordPress.

wordpress-online

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 .