SlideShare una empresa de Scribd logo
I Meetup Docker Córdoba @sergiogomez
WordPress y Nginx
con Docker
I Meetup Docker Córdoba @sergiogomez
● Socio fundador de QuaiP.com junto al gran @dperilla
● Web Developer Ruby on Rails / HTML / CSS / jQuery
● 15 años de experiencia en aplicaciones web
Sergio Gómez - @sergiogomez
Una vida dedicada a la sonrisa, a mis niños, y al rock and roll
I Meetup Docker Córdoba @sergiogomez
● Desarrollo e infraestructuras avanzadas de VoIP
● Servidores de streaming de radio y TV
● Cloud, VPS y servidores avanzados para aplicaciones
I Meetup Docker Córdoba @sergiogomez
1
Generar una imagen
Docker de WordPress
I Meetup Docker Córdoba @sergiogomez
¿Qué necesitamos?
+ Un sistema operativo (Ubuntu)
+ Una base de datos (MySQL)
+ Un servidor web (Nginx)
+ Motor de PHP (PHP-FPM)
+ Instalar y configurar WordPress
I Meetup Docker Córdoba @sergiogomez
Dockerfile (1/2)
FROM ubuntu:14.04
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ln -sf /bin/true /sbin/initctl
RUN apt-get update
RUN apt-get -y upgrade
...
RUN apt-get -y install mysql-server mysql-client nginx php5-fpm php5-mysql php-apc
pwgen python-setuptools curl git unzip
...
RUN apt-get -y install php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap
php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-sqlite php5-
tidy php5-xmlrpc php5-xsl
# mysql config (...)
# nginx config (...)
# php-fpm config (...)
# nginx site conf (...)
Fuente: https://github.com/eugeneware/docker-wordpress-nginx
I Meetup Docker Córdoba @sergiogomez
Dockerfile (2/2)
# Supervisor Config (...)
# Install Wordpress
ADD http://wordpress.org/latest.tar.gz /usr/share/nginx/latest.tar.gz
RUN cd /usr/share/nginx/ && tar xvf latest.tar.gz && rm latest.tar.gz
RUN mv /usr/share/nginx/html/5* /usr/share/nginx/wordpress
RUN rm -rf /usr/share/nginx/www
RUN mv /usr/share/nginx/wordpress /usr/share/nginx/www
RUN chown -R www-data:www-data /usr/share/nginx/www
# Wordpress Initialization and Startup Script
ADD ./start.sh /start.sh
RUN chmod 755 /start.sh
# private expose
EXPOSE 3306
EXPOSE 80
CMD ["/bin/bash", "/start.sh"]
Fuente: https://github.com/eugeneware/docker-wordpress-nginx
I Meetup Docker Córdoba @sergiogomez
start.sh
La primera vez que se ejecuta:
+ Crea una base de datos para WordPress
+ Genera una contraseña para la base de datos
+ Instalar plugin de Nginx para WordPress
+ Configurar enlaces permanentes
+ Crear el fichero wp-config.php con los datos generados
Cada vez que se ejecuta:
+ Inicia todos los servicios (supervisord)
I Meetup Docker Córdoba @sergiogomez
Creación de la imagen
$ git clone https://github.com/eugeneware/docker-wordpress-nginx.git
$ cd docker-wordpress-nginx
# Podemos personalizar el fichero nginx-site.conf
$ docker build -t docker-wordpress-nginx .
Fuente: https://github.com/eugeneware/docker-wordpress-nginx
Al finalizar dispondremos de una imagen que ya podríamos usar para generar
tantos contenedores como instancias de WordPress queramos instalar
$ docker run --name blog1 -d docker-wordpress-nginx
Pero aún no vamos a hacerlo, ya que necesitamos acceder a cada instancia
desde fuera con su URL (p.e. blog.dominio.com)
I Meetup Docker Córdoba @sergiogomez
2
Instalar un servidor Nginx que actúe
como proxy inverso de cada instancia
I Meetup Docker Córdoba @sergiogomez
¿Qué necesitamos?
+ Un sistema operativo (Ubuntu)
+ Un servidor web (Nginx)
+ Configurar Nginx para que enlace con los contenedores
Docker que se vayan creando
I Meetup Docker Córdoba @sergiogomez
Dockerfile
Fuente: https://github.com/jwilder/nginx-proxy
FROM ubuntu:12.04
# Install Nginx.
RUN apt-get update
RUN apt-get install -y python-software-properties wget
RUN add-apt-repository -y ppa:nginx/stable
RUN apt-get update
RUN apt-get install -y nginx
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
(...)
# Install Forego (Foreman in Go)
# Install Docker-Gen (Generador de ficheros a partir de metadatos de contenedores
Docker)
EXPOSE 80
ENV DOCKER_HOST unix:///tmp/docker.sock
CMD ["forego", "start", "-r"]
I Meetup Docker Córdoba @sergiogomez
Creación de la imagen
$ git clone https://github.com/jwilder/nginx-proxy.git
$ cd nginx-proxy
# Podemos personalizar el fichero nginx.tmpl (plantilla de los virtual host generados)
$ docker build -t nginx-proxy .
Una vez generada la imagen, creamos un contenedor, y ahora sí podemos
usar la imagen de WordPress para crear contenedores accesibles con su URL
$ docker run --name proxy -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock -t
nginx-proxy
$ docker run --name blog1 -e VIRTUAL_HOST=blog.dominio.com -d docker-wordpress-nginx
Fuente: https://github.com/jwilder/nginx-proxy
I Meetup Docker Córdoba @sergiogomez
Demostración
I Meetup Docker Córdoba @sergiogomez
¿Problemas?
I Meetup Docker Córdoba @sergiogomez
Retos pendientes
+ Comprobar el rendimiento
+ Realizar tareas de mantenimiento
+ Depuración de problemas
+ Migración a otro servidor
+ ...
I Meetup Docker Córdoba @sergiogomez
Bonus Track 1
Instalar Ghost
I Meetup Docker Córdoba @sergiogomez
Creación del contenedor
$ docker pull dockerfile/ghost
$ mkdir ghost
$ cd ghost/
$ wget https://raw.githubusercontent.com/TryGhost/Ghost/master/config.example.js -O
config.js
$ mkdir -p content/data
$ mkdir -p content/images
$ mkdir -p content/themes
# Editamos el fichero config.js y configuramos el entorno de producción
# Reemplazamos 127.0.0.1 por 0.0.0.0
$ docker run --name ghost1 -e VIRTUAL_HOST=ghost.dominio.com -v /path/to/ghost:/ghost-
override -d dockerfile/ghost
Fuente: https://github.com/dockerfile/ghost
I Meetup Docker Córdoba @sergiogomez
Bonus Track 2
Instalar Telegram
I Meetup Docker Córdoba @sergiogomez
Dockerfile
FROM dockerfile/nodejs
RUN mkdir -p /webogram
ADD https://github.com/sergiogomez/webogram/archive/master.zip /webogram/webogram-
master.zip
RUN cd /webogram && unzip webogram-master.zip && rm -Rf webogram-master.zip
WORKDIR /webogram/webogram-master/app
EXPOSE 80
CMD ["node", "../server.js"]
I Meetup Docker Córdoba @sergiogomez
Creación de la imagen y varios contenedores
$ git clone https://github.com/sergiogomez/docker-webogram.git
$ cd docker-webogram
$ docker build -t docker-webogram .
$ docker run --name chat1 -e VIRTUAL_HOST=chat.dominio1.com -d docker-webogram
$ docker run --name chat2 -e VIRTUAL_HOST=chat.dominio2.com -d docker-webogram
I Meetup Docker Córdoba @sergiogomez
¿Alguna pregunta?
I Meetup Docker Córdoba @sergiogomez
¡¡MUCHÍSIMAS GRACIAS!!

Más contenido relacionado

La actualidad más candente

Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - Engine
Mario IC
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
Marcelo Ochoa
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
Sergio Zambrano Delfa
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
Gustavo Muslera
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
Jorge Moratilla Porras
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
Mario IC
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Open Canarias
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Vicente Gerardo Guzman Lucio
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
David Luque Quintana
 
Dockers y wp
Dockers y wpDockers y wp
Dockers y wp
Eric Zeidan
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
Álvaro Alonso González
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
CLEFormación
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
Christian Rodriguez
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
Restorando
 
Contenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneasContenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneas
Software Guru
 
Introduccion A Docker
Introduccion A DockerIntroduccion A Docker
Introduccion A Docker
Adrian Garcia Casas
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarm
Alejandro Escanero Blanco
 
PHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHPPHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHP
Rolando Caldas
 
Usando docker
Usando dockerUsando docker
Usando docker
Gustavo Muslera
 
Introducción a Vagrant
Introducción a VagrantIntroducción a Vagrant
Introducción a Vagrant
Raúl Uranga
 

La actualidad más candente (20)

Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - Engine
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
 
Dockers y wp
Dockers y wpDockers y wp
Dockers y wp
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Contenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneasContenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneas
 
Introduccion A Docker
Introduccion A DockerIntroduccion A Docker
Introduccion A Docker
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarm
 
PHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHPPHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHP
 
Usando docker
Usando dockerUsando docker
Usando docker
 
Introducción a Vagrant
Introducción a VagrantIntroducción a Vagrant
Introducción a Vagrant
 

Similar a WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip

Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Keopx
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Mario IC
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
Jan Sanchez
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
Eric Zeidan
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
Julio Palma Vázquez
 
Taller girona
Taller gironaTaller girona
Taller girona
Joana Simoes
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
BEEVA_es
 
Meetup V.E.No.M. y docker
Meetup V.E.No.M. y dockerMeetup V.E.No.M. y docker
Meetup V.E.No.M. y docker
Manuel Juan Fosela Aguila
 
Docker WordPress
Docker WordPressDocker WordPress
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
BelnGonzlezGarca1
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
Micael Gallego
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
Irene Alonso Candelario
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
AntonyPrez3
 
Docker4developers Codemotion2016
Docker4developers Codemotion2016Docker4developers Codemotion2016
Docker4developers Codemotion2016
Raúl Requero García
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos Aires
Bel Rey
 
Bulma 441
Bulma 441Bulma 441
Bulma 441
Leonardo Perez
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
jdezine
 
Gdglima docker-ecosystem
Gdglima docker-ecosystemGdglima docker-ecosystem
Gdglima docker-ecosystem
Edith Puclla
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
Elio Rojano
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
VOIP2DAY
 

Similar a WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip (20)

Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Taller girona
Taller gironaTaller girona
Taller girona
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Meetup V.E.No.M. y docker
Meetup V.E.No.M. y dockerMeetup V.E.No.M. y docker
Meetup V.E.No.M. y docker
 
Docker WordPress
Docker WordPressDocker WordPress
Docker WordPress
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Docker4developers Codemotion2016
Docker4developers Codemotion2016Docker4developers Codemotion2016
Docker4developers Codemotion2016
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos Aires
 
Bulma 441
Bulma 441Bulma 441
Bulma 441
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Gdglima docker-ecosystem
Gdglima docker-ecosystemGdglima docker-ecosystem
Gdglima docker-ecosystem
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 

Último

Diapositiva Herramientas Web, Tema Web 3.0.pptx
Diapositiva Herramientas Web, Tema Web 3.0.pptxDiapositiva Herramientas Web, Tema Web 3.0.pptx
Diapositiva Herramientas Web, Tema Web 3.0.pptx
erick502105
 
SEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
SEGURIDAD INFORMATICA- Ariana Vicente CruzattSEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
SEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
vicenteariana54
 
APLICACIONES DE INTERNET-INFORMATICA.pptx
APLICACIONES DE INTERNET-INFORMATICA.pptxAPLICACIONES DE INTERNET-INFORMATICA.pptx
APLICACIONES DE INTERNET-INFORMATICA.pptx
cpadua713
 
Clases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicosClases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicos
mcavero2019
 
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
AlexanderCR12
 
SLIDESHARE, qué es, ventajas y desventajas
SLIDESHARE, qué es, ventajas y desventajasSLIDESHARE, qué es, ventajas y desventajas
SLIDESHARE, qué es, ventajas y desventajas
ruthechepurizaca
 
Oración a Pomba Gira María Padilha .docx
Oración a Pomba Gira María Padilha .docxOración a Pomba Gira María Padilha .docx
Oración a Pomba Gira María Padilha .docx
LuisAlbertoCordovaBa
 
ESTUDIANTES BENEFICIARIOS que se suman a los beneficios de la universidad
ESTUDIANTES BENEFICIARIOS que se suman a los beneficios de la universidadESTUDIANTES BENEFICIARIOS que se suman a los beneficios de la universidad
ESTUDIANTES BENEFICIARIOS que se suman a los beneficios de la universidad
jorgejhonatanaltamir1
 
COMUNIDADES DE APRENDIZAJE EN EL CURSO DE APLICACIONES PARA INTERNET
COMUNIDADES DE APRENDIZAJE EN EL CURSO DE APLICACIONES PARA INTERNETCOMUNIDADES DE APRENDIZAJE EN EL CURSO DE APLICACIONES PARA INTERNET
COMUNIDADES DE APRENDIZAJE EN EL CURSO DE APLICACIONES PARA INTERNET
Kevin Aguilar Garcia
 
La revolución de Netflix redefiniendo las películas, la televisión, el arte y...
La revolución de Netflix redefiniendo las películas, la televisión, el arte y...La revolución de Netflix redefiniendo las películas, la televisión, el arte y...
La revolución de Netflix redefiniendo las películas, la televisión, el arte y...
NoraRoberts5
 
FICHA DE EDUCACIÓN RELIGIOSA 17 DE CTUBRE LA oracion.docx
FICHA DE EDUCACIÓN RELIGIOSA  17 DE CTUBRE LA  oracion.docxFICHA DE EDUCACIÓN RELIGIOSA  17 DE CTUBRE LA  oracion.docx
FICHA DE EDUCACIÓN RELIGIOSA 17 DE CTUBRE LA oracion.docx
EmilyEsmeraldaQuispe
 

Último (11)

Diapositiva Herramientas Web, Tema Web 3.0.pptx
Diapositiva Herramientas Web, Tema Web 3.0.pptxDiapositiva Herramientas Web, Tema Web 3.0.pptx
Diapositiva Herramientas Web, Tema Web 3.0.pptx
 
SEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
SEGURIDAD INFORMATICA- Ariana Vicente CruzattSEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
SEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
 
APLICACIONES DE INTERNET-INFORMATICA.pptx
APLICACIONES DE INTERNET-INFORMATICA.pptxAPLICACIONES DE INTERNET-INFORMATICA.pptx
APLICACIONES DE INTERNET-INFORMATICA.pptx
 
Clases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicosClases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicos
 
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
 
SLIDESHARE, qué es, ventajas y desventajas
SLIDESHARE, qué es, ventajas y desventajasSLIDESHARE, qué es, ventajas y desventajas
SLIDESHARE, qué es, ventajas y desventajas
 
Oración a Pomba Gira María Padilha .docx
Oración a Pomba Gira María Padilha .docxOración a Pomba Gira María Padilha .docx
Oración a Pomba Gira María Padilha .docx
 
ESTUDIANTES BENEFICIARIOS que se suman a los beneficios de la universidad
ESTUDIANTES BENEFICIARIOS que se suman a los beneficios de la universidadESTUDIANTES BENEFICIARIOS que se suman a los beneficios de la universidad
ESTUDIANTES BENEFICIARIOS que se suman a los beneficios de la universidad
 
COMUNIDADES DE APRENDIZAJE EN EL CURSO DE APLICACIONES PARA INTERNET
COMUNIDADES DE APRENDIZAJE EN EL CURSO DE APLICACIONES PARA INTERNETCOMUNIDADES DE APRENDIZAJE EN EL CURSO DE APLICACIONES PARA INTERNET
COMUNIDADES DE APRENDIZAJE EN EL CURSO DE APLICACIONES PARA INTERNET
 
La revolución de Netflix redefiniendo las películas, la televisión, el arte y...
La revolución de Netflix redefiniendo las películas, la televisión, el arte y...La revolución de Netflix redefiniendo las películas, la televisión, el arte y...
La revolución de Netflix redefiniendo las películas, la televisión, el arte y...
 
FICHA DE EDUCACIÓN RELIGIOSA 17 DE CTUBRE LA oracion.docx
FICHA DE EDUCACIÓN RELIGIOSA  17 DE CTUBRE LA  oracion.docxFICHA DE EDUCACIÓN RELIGIOSA  17 DE CTUBRE LA  oracion.docx
FICHA DE EDUCACIÓN RELIGIOSA 17 DE CTUBRE LA oracion.docx
 

WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip

  • 1. I Meetup Docker Córdoba @sergiogomez WordPress y Nginx con Docker
  • 2. I Meetup Docker Córdoba @sergiogomez ● Socio fundador de QuaiP.com junto al gran @dperilla ● Web Developer Ruby on Rails / HTML / CSS / jQuery ● 15 años de experiencia en aplicaciones web Sergio Gómez - @sergiogomez Una vida dedicada a la sonrisa, a mis niños, y al rock and roll
  • 3. I Meetup Docker Córdoba @sergiogomez ● Desarrollo e infraestructuras avanzadas de VoIP ● Servidores de streaming de radio y TV ● Cloud, VPS y servidores avanzados para aplicaciones
  • 4. I Meetup Docker Córdoba @sergiogomez 1 Generar una imagen Docker de WordPress
  • 5. I Meetup Docker Córdoba @sergiogomez ¿Qué necesitamos? + Un sistema operativo (Ubuntu) + Una base de datos (MySQL) + Un servidor web (Nginx) + Motor de PHP (PHP-FPM) + Instalar y configurar WordPress
  • 6. I Meetup Docker Córdoba @sergiogomez Dockerfile (1/2) FROM ubuntu:14.04 RUN dpkg-divert --local --rename --add /sbin/initctl RUN ln -sf /bin/true /sbin/initctl RUN apt-get update RUN apt-get -y upgrade ... RUN apt-get -y install mysql-server mysql-client nginx php5-fpm php5-mysql php-apc pwgen python-setuptools curl git unzip ... RUN apt-get -y install php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-sqlite php5- tidy php5-xmlrpc php5-xsl # mysql config (...) # nginx config (...) # php-fpm config (...) # nginx site conf (...) Fuente: https://github.com/eugeneware/docker-wordpress-nginx
  • 7. I Meetup Docker Córdoba @sergiogomez Dockerfile (2/2) # Supervisor Config (...) # Install Wordpress ADD http://wordpress.org/latest.tar.gz /usr/share/nginx/latest.tar.gz RUN cd /usr/share/nginx/ && tar xvf latest.tar.gz && rm latest.tar.gz RUN mv /usr/share/nginx/html/5* /usr/share/nginx/wordpress RUN rm -rf /usr/share/nginx/www RUN mv /usr/share/nginx/wordpress /usr/share/nginx/www RUN chown -R www-data:www-data /usr/share/nginx/www # Wordpress Initialization and Startup Script ADD ./start.sh /start.sh RUN chmod 755 /start.sh # private expose EXPOSE 3306 EXPOSE 80 CMD ["/bin/bash", "/start.sh"] Fuente: https://github.com/eugeneware/docker-wordpress-nginx
  • 8. I Meetup Docker Córdoba @sergiogomez start.sh La primera vez que se ejecuta: + Crea una base de datos para WordPress + Genera una contraseña para la base de datos + Instalar plugin de Nginx para WordPress + Configurar enlaces permanentes + Crear el fichero wp-config.php con los datos generados Cada vez que se ejecuta: + Inicia todos los servicios (supervisord)
  • 9. I Meetup Docker Córdoba @sergiogomez Creación de la imagen $ git clone https://github.com/eugeneware/docker-wordpress-nginx.git $ cd docker-wordpress-nginx # Podemos personalizar el fichero nginx-site.conf $ docker build -t docker-wordpress-nginx . Fuente: https://github.com/eugeneware/docker-wordpress-nginx Al finalizar dispondremos de una imagen que ya podríamos usar para generar tantos contenedores como instancias de WordPress queramos instalar $ docker run --name blog1 -d docker-wordpress-nginx Pero aún no vamos a hacerlo, ya que necesitamos acceder a cada instancia desde fuera con su URL (p.e. blog.dominio.com)
  • 10. I Meetup Docker Córdoba @sergiogomez 2 Instalar un servidor Nginx que actúe como proxy inverso de cada instancia
  • 11. I Meetup Docker Córdoba @sergiogomez ¿Qué necesitamos? + Un sistema operativo (Ubuntu) + Un servidor web (Nginx) + Configurar Nginx para que enlace con los contenedores Docker que se vayan creando
  • 12. I Meetup Docker Córdoba @sergiogomez Dockerfile Fuente: https://github.com/jwilder/nginx-proxy FROM ubuntu:12.04 # Install Nginx. RUN apt-get update RUN apt-get install -y python-software-properties wget RUN add-apt-repository -y ppa:nginx/stable RUN apt-get update RUN apt-get install -y nginx RUN echo "daemon off;" >> /etc/nginx/nginx.conf (...) # Install Forego (Foreman in Go) # Install Docker-Gen (Generador de ficheros a partir de metadatos de contenedores Docker) EXPOSE 80 ENV DOCKER_HOST unix:///tmp/docker.sock CMD ["forego", "start", "-r"]
  • 13. I Meetup Docker Córdoba @sergiogomez Creación de la imagen $ git clone https://github.com/jwilder/nginx-proxy.git $ cd nginx-proxy # Podemos personalizar el fichero nginx.tmpl (plantilla de los virtual host generados) $ docker build -t nginx-proxy . Una vez generada la imagen, creamos un contenedor, y ahora sí podemos usar la imagen de WordPress para crear contenedores accesibles con su URL $ docker run --name proxy -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock -t nginx-proxy $ docker run --name blog1 -e VIRTUAL_HOST=blog.dominio.com -d docker-wordpress-nginx Fuente: https://github.com/jwilder/nginx-proxy
  • 14. I Meetup Docker Córdoba @sergiogomez Demostración
  • 15. I Meetup Docker Córdoba @sergiogomez ¿Problemas?
  • 16. I Meetup Docker Córdoba @sergiogomez Retos pendientes + Comprobar el rendimiento + Realizar tareas de mantenimiento + Depuración de problemas + Migración a otro servidor + ...
  • 17. I Meetup Docker Córdoba @sergiogomez Bonus Track 1 Instalar Ghost
  • 18. I Meetup Docker Córdoba @sergiogomez Creación del contenedor $ docker pull dockerfile/ghost $ mkdir ghost $ cd ghost/ $ wget https://raw.githubusercontent.com/TryGhost/Ghost/master/config.example.js -O config.js $ mkdir -p content/data $ mkdir -p content/images $ mkdir -p content/themes # Editamos el fichero config.js y configuramos el entorno de producción # Reemplazamos 127.0.0.1 por 0.0.0.0 $ docker run --name ghost1 -e VIRTUAL_HOST=ghost.dominio.com -v /path/to/ghost:/ghost- override -d dockerfile/ghost Fuente: https://github.com/dockerfile/ghost
  • 19. I Meetup Docker Córdoba @sergiogomez Bonus Track 2 Instalar Telegram
  • 20. I Meetup Docker Córdoba @sergiogomez Dockerfile FROM dockerfile/nodejs RUN mkdir -p /webogram ADD https://github.com/sergiogomez/webogram/archive/master.zip /webogram/webogram- master.zip RUN cd /webogram && unzip webogram-master.zip && rm -Rf webogram-master.zip WORKDIR /webogram/webogram-master/app EXPOSE 80 CMD ["node", "../server.js"]
  • 21. I Meetup Docker Córdoba @sergiogomez Creación de la imagen y varios contenedores $ git clone https://github.com/sergiogomez/docker-webogram.git $ cd docker-webogram $ docker build -t docker-webogram . $ docker run --name chat1 -e VIRTUAL_HOST=chat.dominio1.com -d docker-webogram $ docker run --name chat2 -e VIRTUAL_HOST=chat.dominio2.com -d docker-webogram
  • 22. I Meetup Docker Córdoba @sergiogomez ¿Alguna pregunta?
  • 23. I Meetup Docker Córdoba @sergiogomez ¡¡MUCHÍSIMAS GRACIAS!!