| 
						
						
						
					 | 
				
				 | 
				
					@ -0,0 +1,115 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 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í: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					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` . | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  |