SlideShare una empresa de Scribd logo
Creación y administración de servicios
utilizando Docker
Luis Eduardo Montoya
Patrocinado por:
.Net Conf Mx 2018
Comunidades asociadas:
.Net Conf Mx 2018
¿Qué es docker?
• Docker es un proyecto de código abierto que sirve para desplegar
aplicaciones en contenedores de software, creando una capa extra de
abstracción en diferentes sistemas operativos.
.Net Conf Mx 2018
¿Qué es un contenedor?
• Paquete de elementos que pueden ejecutar aplicaciones en cualquier
Sistema Operativo
¿Cómo funciona?
.Net Conf Mx 2018
VM vs Contenedor
.Net Conf Mx 2018
¿Por qué se ha vuelto tan popular?
• Los contenedores fueron creados en el 2013, de modo de que no es algo nuevo.
Lo que ha ayudado a docker a crecer es que el uso de contenedores hace más
fácil el despliegue de aplicaciones.
• Las características de docker que lo han ayudado son:
• Flexible
• Ligero
• Intercambiable
• Portable
• Escalable
• Apilable
.Net Conf Mx 2018
Docker en Azure
.Net Conf Mx 2018
Docker en Azure
• Azure nos provee una forma sencilla para poder crear una máquina
con Docker ya instalado, en vez de tener que instalar Docker a mano.
• Pasos:
1. Abrir el portal de Azure: https://portal.azure.com
2. Hacer click en Crear Recursos
3. Hacer click en contenedores y seleccionar Docker on Ubuntu Server
4. Escribir el hostname, un usuario y la contraseña o llave privada con la
que se conectará al server.
.Net Conf Mx 2018
5. Hacer click en crear y esperar a que se cree nuestra máquina virtual con
docker
6. Una vez creada nos podemos ir a Máquinas Virtuales y ahí nos debería
aparecer nuestra nueva máquina
7. Ya creada le damos click y nos vamos a la parte de Direcciones IP para
conocer su IP pública y poder accede a ella
8. Por medio de la IP nos intentamos conectar por medio de ssh a través de
una consola
• ssh user@hostname
.Net Conf Mx 2018
9. Probamos que docker esté funcionando por medio del siguiente commando
• docker ps
.Net Conf Mx 2018
Fundamentos de Docker
.Net Conf Mx 2018
Fundamentos
• Volumen: carpeta compartida entre el host y el contenedor. Su uso
principal es para manipular archivos que están dentro del contenedor
o para poder salvar esos archivos en caso del que el contenedor se
elimine
• Network: los contenedores pueden conectarse a una red virtual para
poder comunicarse entre ellos
.Net Conf Mx 2018
Fundamentos
• Imagen: es un paquete que incluye todo lo que se necesita para
correr una aplicación
• Ej: httpd, centos, mysql, java
• Contenedor: es una instancia de la imagen que se está siendo
ejecutada. (Este contenedor funciona igual que un proceso en Linux)
.Net Conf Mx 2018
Comandos Principales
• docker container ls – despliega los contenedores existentes
• docker ps – despliega los contentedores que se están ejecutando
actualmente en segundo plano
• docker images – despliega las imágenes que se tienen disponibles en
el servidor
.Net Conf Mx 2018
Banderas principals en docker run
• -t: Crea un pseudo-TTY
• -i: Habilita al contenedor a tener entradas de comandos
• -p <puerto_host>:<puerto_contenedor>: mapea el puerto del host al
puerto del contenedor
• -d: para que el contenedor siga corriendo en segundo plano
• -v <ruta_host>/<nombre_volumen>:<ruta_contenedor>: mapea una ruta
del host a una ruta en el contenedor
• -e <variable=valor>: crea una variable de entorno dentro del contenedor
• --name <nombreDelContenedor>
• --hostname <nombreDelHostnameDentroDelContenedor>
.Net Conf Mx 2018
Hello World
.Net Conf Mx 2018
Hello World
• Primero hay que correr el servicio de docker:
• sudo systemctl start docker o service docker start
• Ahora vamos a correr un servidor web en el puerto 8080
• docker run –dti --name httpd –p 8080:80 httpd
• Vamos a Firefox a la dirección: localhost:8080
.Net Conf Mx 2018
Hello World
• Primero hay que correr el servicio de docker:
• sudo systemctl start docker o service docker start
• Ahora vamos a correr un servidor web en el puerto 8080
• docker run –dti --name httpd –p 8080:80 httpd
• Vamos a Firefox a la dirección: localhost:8080
.Net Conf Mx 2018
Regla de Seguridad en Azure
• Ir a la máquina virtual y dar click en ella
• Nos vamos a Puntos de conexión
• Damos click en agregar para añadir una nueva regla
• Poner el nombre de la regla, Puerto público y Puerto privado.
• Se pueden agregar reglas para control de acceso
.Net Conf Mx 2018
Hello World
• Accedemos al contenedor para poder ver la configuración del
servidor web
• docker exec –ti httpd /bin/bash
• cat conf/httpd.conf
• Observemos la página web que está en /usr/local/apache2/htdocs y
podemos ver el index.html que se encuentra ahí
.Net Conf Mx 2018
Editar un archivo
• Los contenedores por defecto no cuentan con un editor de texto
• Existen varias formas de editar un archivo de un contenedor
• Opción 1.
• docker cp es un comando que nos permite copiar algo que este en nuestro host a
nuestro contenedor. Su función es similar a la de scp:
• docker cp <archivoEnHost> <contenedor>:<rutaDondeSeráCopiado> - Esto es para
copiar del host al contenedor
• docker cp <contenedor><archivoEnContenedor> <rutaDondeSeráCopiadoEnHost> -
Esto es para copiar del contenedor al host
• Ej:
.Net Conf Mx 2018
Editar un archivo
• Opción 2.
• Al momento de lanzar el contenedor, crear un volumen vinculándolo a una
carpeta, de modo que cualquier modificación dentro de la carpeta será
obtenida en el contenedor
• Ejercicio:
• Eliminamos el contenedor: docker stop httpd docker rm httpd
• Creamos el volumen: docker volume create httpData
• Volvemos a crear el contenedor pero ahora vinculándolo a una carpeta de nuestro home
• docker run –dti --name httpd –p 8080:80 –v httpData:/usr/local/apache2 httpd
• Editamos el archivo en nuestro host en la carpeta
/var/lib/docker/volumes/httpData/_data/htcdocs/
• Probamos si el cambio fue exitoso
.Net Conf Mx 2018
Dockerfile
.Net Conf Mx 2018
Dockerfile
• Dockerfile es un archivo de texto que contiene comandos para crear tu propia
imagen
• Esta imagen creada se puede “versionar” y subirse a un repositorio de imágenes
• Ejemplo de un dockerfile:
• Nota: por cada linea que se cree, se creará una capa extra
.Net Conf Mx 2018
Comandos principals en Dockerfile
• FROM <nombreImagenBase>: nombre de la imagen base de la cuál vamos a partir
• MAINTENER <nombre>: autor del Dockerfile
• RUN <comando>: ejecución de comandos dentro de la imagen (normalmente para actualizar, instalar o crear
directorios)
• CMD [<comando>]: comando que se ejecutará por default al momento de crear una nueva instancia de la
imagen
• ENV <key>=<valor>: Seteo de variables de entorno
• EXPOSE <Puerto>: Puerto que se quiere poner público
• COPY <origen><destino>: copia un archivo del host a la imagen
• ENTRYPOINT [<comando>]: similar a CMD pero este comando se ejecutará pesé a si se específique un
comando en docker run o no
• VOLUME <directorio>: crear partición dentro del contenedor (no relacionada con el host)
• WORKDIR <directorio>: para poner directorio donde se trabaja (cd)
.Net Conf Mx 2018
Creando nuestra propia imagen
• Dockerfile:
.Net Conf Mx 2018
• Construir la imagen
• docker build –t my-httpd-image –f
<nombreArchivo> .
• Crear un contenedor
• docker run –dti --name apache2 –p
8080:80 my-httpd-image
Docker Hub
.Net Conf Mx 2018
Docker Hub
• Docker Hub es un repositorio de imágenes en línea donde se pueden
guardar imágenes creadas por nosotros o descargar unas ya
existentes.
• Las imágenes normalmente vienen con un README el cuál nos explica
cómo podemos configurarlas o ejecutarlas
• Nos sirve para guardar el versionamiento de nuestras imágenes
• Ejemplo de imágenes:
• https://hub.docker.com/_/mysql/
.Net Conf Mx 2018
Descargar imagen de Docker Hub
• Al momento de ejecutar el comando de Docker run siempre se indica
el nombre de la imagen a tomar.
• docker run –dti --name mysql –p 803306:3306 mysql
• El nombre de la imagen puede recibir un parámetro extra, indicando
que versión es la que se debe de utilizar
• docker run –dti --name mysql –p 803306:3306 mysql:5.7
.Net Conf Mx 2018
• Al no indicar nada, se toma la última versión disponible en el
repositorio
• Para poder descargar una imagen sin necesidad de ejecutar el Docker
run se usa el siguiente comando
• docker pull <nombreDeLaImagen>
• NOTA: también se puede agregar la versión (el tag) a la imagen para descargar
una específica
.Net Conf Mx 2018
Subiendo una imagen
• Al momento de crear una cuenta en Docker Hub podemos subir
nuestros propios repositorios de imágenes
• El nombre de la imagen tiene un formato específico:
• <Docker_User_id>/<nombre_de_la_imagen>:<tag_o_versión>
.Net Conf Mx 2018
• Para poder utilizar Docker Hub se debe de loguear a su plataforma
• Una vez logueados, se debe de cambiar el nombre de la imagen al
formato establecido
• docker tag <nombre_imagen>:<tag> <nuevo_nombre_imagen>:<tag>
.Net Conf Mx 2018
• Una vez que tengamos la nueva imagen renombrada ya se puede
subir a Docker Hub:
• docker push <nombre_imagen>
• Ejemplo:
.Net Conf Mx 2018
Conclusiones
.Net Conf Mx 2018
Conclusiones
• Diferentes entornos, diferentes configuraciones, diferentes mundos
• 66% de las empresas que prueban Docker se quedan con él
• PHP, Ruby, Java y Node son los principales frameworks utilizados en
contenedores
• Empresas que utilizan docker: PayPal, Spotify, ADP
• ¿Docker Swarm?
.Net Conf Mx 2018
Creación y administración de servicios
utilizando Docker
Luis Eduardo Montoya

Más contenido relacionado

La actualidad más candente

Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
Rafael Hernamperez Martin
 
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
 
Usando docker
Usando dockerUsando docker
Usando docker
Gustavo Muslera
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
quaip
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
Javier Sánchez Ochando
 
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 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
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
Erasmo Domínguez Jiménez
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
Felipe de Morais
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
Christian Rodriguez
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
Gabriel Eisbruch
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
Alejandro Hernández
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
Restorando
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Restorando
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
Software Guru
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
quaip
 
Dockers y wp
Dockers y wpDockers y wp
Dockers y wp
Eric Zeidan
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
BelnGonzlezGarca1
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
Mario IC
 

La actualidad más candente (20)

Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Usando docker
Usando dockerUsando docker
Usando docker
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
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 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
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
 
Dockers y wp
Dockers y wpDockers y wp
Dockers y wp
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 

Similar a Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018

Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - Engine
Mario IC
 
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
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
Micael Gallego
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
Micael Gallego
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azure
Oscar Gensollen
 
Taller girona
Taller gironaTaller girona
Taller girona
Joana Simoes
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
AntonyPrez3
 
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
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
Eric Zeidan
 
Docker for losers
Docker for losersDocker for losers
Docker for losers
Leonardo Micheloni
 
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
 
Contenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneasContenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneas
Software Guru
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
StivenLopez46
 
Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.
Moisés Elías Araya
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
enyert
 
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 desde cero
Docker desde ceroDocker desde cero
Docker desde cero
Mariano German Egui
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
Plain Concepts
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
Eduard Tomàs
 
Introduccion A Docker
Introduccion A DockerIntroduccion A Docker
Introduccion A Docker
Adrian Garcia Casas
 

Similar a Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018 (20)

Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - Engine
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azure
 
Taller girona
Taller gironaTaller girona
Taller girona
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos Aires
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
 
Docker for losers
Docker for losersDocker for losers
Docker for losers
 
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
 
Contenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneasContenedores, creando infraestructuras homogeneas
Contenedores, creando infraestructuras homogeneas
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
 
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 desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
Introduccion A Docker
Introduccion A DockerIntroduccion A Docker
Introduccion A Docker
 

Más de Vicente Gerardo Guzman Lucio

GPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power AutomateGPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power Automate
Vicente Gerardo Guzman Lucio
 
Introducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptxIntroducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptx
Vicente Gerardo Guzman Lucio
 
Creando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdfCreando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdf
Vicente Gerardo Guzman Lucio
 
ChatGPT & Alexa.pptx
ChatGPT & Alexa.pptxChatGPT & Alexa.pptx
ChatGPT & Alexa.pptx
Vicente Gerardo Guzman Lucio
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Vicente Gerardo Guzman Lucio
 
Conectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa SkillConectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa Skill
Vicente Gerardo Guzman Lucio
 
Azure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web AssemblyAzure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web Assembly
Vicente Gerardo Guzman Lucio
 
Desarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa SkillsDesarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa Skills
Vicente Gerardo Guzman Lucio
 
Blazor vs VUE
Blazor vs VUEBlazor vs VUE
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
Vicente Gerardo Guzman Lucio
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
Vicente Gerardo Guzman Lucio
 
Diseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon AlexaDiseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon Alexa
Vicente Gerardo Guzman Lucio
 
Alexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS LambdaAlexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS Lambda
Vicente Gerardo Guzman Lucio
 
Skills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros PasosSkills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros Pasos
Vicente Gerardo Guzman Lucio
 
¿Qué es la Nube?
¿Qué es la Nube?¿Qué es la Nube?
¿Qué es la Nube?
Vicente Gerardo Guzman Lucio
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en Alexa
Vicente Gerardo Guzman Lucio
 
La era de los Chatbots
La era de los ChatbotsLa era de los Chatbots
La era de los Chatbots
Vicente Gerardo Guzman Lucio
 
Android 64x con Xamarin.Forms
Android 64x con Xamarin.FormsAndroid 64x con Xamarin.Forms
Android 64x con Xamarin.Forms
Vicente Gerardo Guzman Lucio
 
Creando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTubeCreando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTube
Vicente Gerardo Guzman Lucio
 
Alexa Skill en 5 pasos
Alexa Skill en 5 pasosAlexa Skill en 5 pasos
Alexa Skill en 5 pasos
Vicente Gerardo Guzman Lucio
 

Más de Vicente Gerardo Guzman Lucio (20)

GPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power AutomateGPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power Automate
 
Introducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptxIntroducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptx
 
Creando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdfCreando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdf
 
ChatGPT & Alexa.pptx
ChatGPT & Alexa.pptxChatGPT & Alexa.pptx
ChatGPT & Alexa.pptx
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Conectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa SkillConectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa Skill
 
Azure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web AssemblyAzure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web Assembly
 
Desarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa SkillsDesarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa Skills
 
Blazor vs VUE
Blazor vs VUEBlazor vs VUE
Blazor vs VUE
 
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
 
Diseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon AlexaDiseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon Alexa
 
Alexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS LambdaAlexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS Lambda
 
Skills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros PasosSkills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros Pasos
 
¿Qué es la Nube?
¿Qué es la Nube?¿Qué es la Nube?
¿Qué es la Nube?
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en Alexa
 
La era de los Chatbots
La era de los ChatbotsLa era de los Chatbots
La era de los Chatbots
 
Android 64x con Xamarin.Forms
Android 64x con Xamarin.FormsAndroid 64x con Xamarin.Forms
Android 64x con Xamarin.Forms
 
Creando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTubeCreando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTube
 
Alexa Skill en 5 pasos
Alexa Skill en 5 pasosAlexa Skill en 5 pasos
Alexa Skill en 5 pasos
 

Último

Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
JhenryHuisa1
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 

Último (9)

Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 

Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018

  • 1.
  • 2. Creación y administración de servicios utilizando Docker Luis Eduardo Montoya
  • 5. ¿Qué es docker? • Docker es un proyecto de código abierto que sirve para desplegar aplicaciones en contenedores de software, creando una capa extra de abstracción en diferentes sistemas operativos. .Net Conf Mx 2018 ¿Qué es un contenedor? • Paquete de elementos que pueden ejecutar aplicaciones en cualquier Sistema Operativo
  • 7. VM vs Contenedor .Net Conf Mx 2018
  • 8. ¿Por qué se ha vuelto tan popular? • Los contenedores fueron creados en el 2013, de modo de que no es algo nuevo. Lo que ha ayudado a docker a crecer es que el uso de contenedores hace más fácil el despliegue de aplicaciones. • Las características de docker que lo han ayudado son: • Flexible • Ligero • Intercambiable • Portable • Escalable • Apilable .Net Conf Mx 2018
  • 9. Docker en Azure .Net Conf Mx 2018
  • 10. Docker en Azure • Azure nos provee una forma sencilla para poder crear una máquina con Docker ya instalado, en vez de tener que instalar Docker a mano. • Pasos: 1. Abrir el portal de Azure: https://portal.azure.com 2. Hacer click en Crear Recursos 3. Hacer click en contenedores y seleccionar Docker on Ubuntu Server 4. Escribir el hostname, un usuario y la contraseña o llave privada con la que se conectará al server. .Net Conf Mx 2018
  • 11. 5. Hacer click en crear y esperar a que se cree nuestra máquina virtual con docker 6. Una vez creada nos podemos ir a Máquinas Virtuales y ahí nos debería aparecer nuestra nueva máquina 7. Ya creada le damos click y nos vamos a la parte de Direcciones IP para conocer su IP pública y poder accede a ella 8. Por medio de la IP nos intentamos conectar por medio de ssh a través de una consola • ssh user@hostname .Net Conf Mx 2018
  • 12. 9. Probamos que docker esté funcionando por medio del siguiente commando • docker ps .Net Conf Mx 2018
  • 14. Fundamentos • Volumen: carpeta compartida entre el host y el contenedor. Su uso principal es para manipular archivos que están dentro del contenedor o para poder salvar esos archivos en caso del que el contenedor se elimine • Network: los contenedores pueden conectarse a una red virtual para poder comunicarse entre ellos .Net Conf Mx 2018
  • 15. Fundamentos • Imagen: es un paquete que incluye todo lo que se necesita para correr una aplicación • Ej: httpd, centos, mysql, java • Contenedor: es una instancia de la imagen que se está siendo ejecutada. (Este contenedor funciona igual que un proceso en Linux) .Net Conf Mx 2018
  • 16. Comandos Principales • docker container ls – despliega los contenedores existentes • docker ps – despliega los contentedores que se están ejecutando actualmente en segundo plano • docker images – despliega las imágenes que se tienen disponibles en el servidor .Net Conf Mx 2018
  • 17. Banderas principals en docker run • -t: Crea un pseudo-TTY • -i: Habilita al contenedor a tener entradas de comandos • -p <puerto_host>:<puerto_contenedor>: mapea el puerto del host al puerto del contenedor • -d: para que el contenedor siga corriendo en segundo plano • -v <ruta_host>/<nombre_volumen>:<ruta_contenedor>: mapea una ruta del host a una ruta en el contenedor • -e <variable=valor>: crea una variable de entorno dentro del contenedor • --name <nombreDelContenedor> • --hostname <nombreDelHostnameDentroDelContenedor> .Net Conf Mx 2018
  • 19. Hello World • Primero hay que correr el servicio de docker: • sudo systemctl start docker o service docker start • Ahora vamos a correr un servidor web en el puerto 8080 • docker run –dti --name httpd –p 8080:80 httpd • Vamos a Firefox a la dirección: localhost:8080 .Net Conf Mx 2018
  • 20. Hello World • Primero hay que correr el servicio de docker: • sudo systemctl start docker o service docker start • Ahora vamos a correr un servidor web en el puerto 8080 • docker run –dti --name httpd –p 8080:80 httpd • Vamos a Firefox a la dirección: localhost:8080 .Net Conf Mx 2018
  • 21. Regla de Seguridad en Azure • Ir a la máquina virtual y dar click en ella • Nos vamos a Puntos de conexión • Damos click en agregar para añadir una nueva regla • Poner el nombre de la regla, Puerto público y Puerto privado. • Se pueden agregar reglas para control de acceso .Net Conf Mx 2018
  • 22. Hello World • Accedemos al contenedor para poder ver la configuración del servidor web • docker exec –ti httpd /bin/bash • cat conf/httpd.conf • Observemos la página web que está en /usr/local/apache2/htdocs y podemos ver el index.html que se encuentra ahí .Net Conf Mx 2018
  • 23. Editar un archivo • Los contenedores por defecto no cuentan con un editor de texto • Existen varias formas de editar un archivo de un contenedor • Opción 1. • docker cp es un comando que nos permite copiar algo que este en nuestro host a nuestro contenedor. Su función es similar a la de scp: • docker cp <archivoEnHost> <contenedor>:<rutaDondeSeráCopiado> - Esto es para copiar del host al contenedor • docker cp <contenedor><archivoEnContenedor> <rutaDondeSeráCopiadoEnHost> - Esto es para copiar del contenedor al host • Ej: .Net Conf Mx 2018
  • 24. Editar un archivo • Opción 2. • Al momento de lanzar el contenedor, crear un volumen vinculándolo a una carpeta, de modo que cualquier modificación dentro de la carpeta será obtenida en el contenedor • Ejercicio: • Eliminamos el contenedor: docker stop httpd docker rm httpd • Creamos el volumen: docker volume create httpData • Volvemos a crear el contenedor pero ahora vinculándolo a una carpeta de nuestro home • docker run –dti --name httpd –p 8080:80 –v httpData:/usr/local/apache2 httpd • Editamos el archivo en nuestro host en la carpeta /var/lib/docker/volumes/httpData/_data/htcdocs/ • Probamos si el cambio fue exitoso .Net Conf Mx 2018
  • 26. Dockerfile • Dockerfile es un archivo de texto que contiene comandos para crear tu propia imagen • Esta imagen creada se puede “versionar” y subirse a un repositorio de imágenes • Ejemplo de un dockerfile: • Nota: por cada linea que se cree, se creará una capa extra .Net Conf Mx 2018
  • 27. Comandos principals en Dockerfile • FROM <nombreImagenBase>: nombre de la imagen base de la cuál vamos a partir • MAINTENER <nombre>: autor del Dockerfile • RUN <comando>: ejecución de comandos dentro de la imagen (normalmente para actualizar, instalar o crear directorios) • CMD [<comando>]: comando que se ejecutará por default al momento de crear una nueva instancia de la imagen • ENV <key>=<valor>: Seteo de variables de entorno • EXPOSE <Puerto>: Puerto que se quiere poner público • COPY <origen><destino>: copia un archivo del host a la imagen • ENTRYPOINT [<comando>]: similar a CMD pero este comando se ejecutará pesé a si se específique un comando en docker run o no • VOLUME <directorio>: crear partición dentro del contenedor (no relacionada con el host) • WORKDIR <directorio>: para poner directorio donde se trabaja (cd) .Net Conf Mx 2018
  • 28. Creando nuestra propia imagen • Dockerfile: .Net Conf Mx 2018 • Construir la imagen • docker build –t my-httpd-image –f <nombreArchivo> . • Crear un contenedor • docker run –dti --name apache2 –p 8080:80 my-httpd-image
  • 30. Docker Hub • Docker Hub es un repositorio de imágenes en línea donde se pueden guardar imágenes creadas por nosotros o descargar unas ya existentes. • Las imágenes normalmente vienen con un README el cuál nos explica cómo podemos configurarlas o ejecutarlas • Nos sirve para guardar el versionamiento de nuestras imágenes • Ejemplo de imágenes: • https://hub.docker.com/_/mysql/ .Net Conf Mx 2018
  • 31. Descargar imagen de Docker Hub • Al momento de ejecutar el comando de Docker run siempre se indica el nombre de la imagen a tomar. • docker run –dti --name mysql –p 803306:3306 mysql • El nombre de la imagen puede recibir un parámetro extra, indicando que versión es la que se debe de utilizar • docker run –dti --name mysql –p 803306:3306 mysql:5.7 .Net Conf Mx 2018
  • 32. • Al no indicar nada, se toma la última versión disponible en el repositorio • Para poder descargar una imagen sin necesidad de ejecutar el Docker run se usa el siguiente comando • docker pull <nombreDeLaImagen> • NOTA: también se puede agregar la versión (el tag) a la imagen para descargar una específica .Net Conf Mx 2018
  • 33. Subiendo una imagen • Al momento de crear una cuenta en Docker Hub podemos subir nuestros propios repositorios de imágenes • El nombre de la imagen tiene un formato específico: • <Docker_User_id>/<nombre_de_la_imagen>:<tag_o_versión> .Net Conf Mx 2018
  • 34. • Para poder utilizar Docker Hub se debe de loguear a su plataforma • Una vez logueados, se debe de cambiar el nombre de la imagen al formato establecido • docker tag <nombre_imagen>:<tag> <nuevo_nombre_imagen>:<tag> .Net Conf Mx 2018
  • 35. • Una vez que tengamos la nueva imagen renombrada ya se puede subir a Docker Hub: • docker push <nombre_imagen> • Ejemplo: .Net Conf Mx 2018
  • 37. Conclusiones • Diferentes entornos, diferentes configuraciones, diferentes mundos • 66% de las empresas que prueban Docker se quedan con él • PHP, Ruby, Java y Node son los principales frameworks utilizados en contenedores • Empresas que utilizan docker: PayPal, Spotify, ADP • ¿Docker Swarm? .Net Conf Mx 2018
  • 38. Creación y administración de servicios utilizando Docker Luis Eduardo Montoya