SlideShare una empresa de Scribd logo
1 de 31
for losers
Agenda
• Qué es Docker?
• Qué es una imagen?
• Qué es un contenedor?
• Diferencia entre contenedor y máquina virtual
• Cómo crear nuestras imágenes
• Cómo crear contenedores
• Otras cosas
Qué es Docker
• Una empresa
• Un software para gestionar contenedores
• No es el único
• Ofrece un servicio pago
Qué es un contenedor?
The big picture
• Un container es un proceso aislado
• Tiene su propio file system
• Tiene su propia red
• Es la “base” de los microservicios actuales (pero no excluyente)
• Docker <> microservicios
• Microservicios no implica Docker
Capacidades
• Ejecutar una app sin instalar nada
• Redis, Rabbit, PHP, Mongo, etc.
• Platform specific software
• Desarrollar en un entorno diferente
• Desplegar lo mismo que se desarrolló
Diferencias con una máquina virtual
http://apachebooster.com/kb/wp-content/uploads/2017/09/VM_vs_Docker.png
En Windows
Windows 10 pro 64
Windows 10 ent 64
Hyper-V
Imágenes y contenedores
https://cdn.dribbble.com/users/531222/screenshots/3477342/ingagro_nomos3-iloveimg-compressed.gif
Qué es una imagen?
• Es el “molde” para crear contenedores
• Son inmutables
• Se pueden crear localmente
• Se pueden obtener desde “registros”
• Similar a npm, nuget, etc.
Imágenes vs Contenedores
• Imagen
• Es similar a una clase
• Se utiliza para instanciar contenedores
• Es inmutable
• Se pueden crear múltiples “instancias”
• Contenedor
• Es similar a un objeto
• Se ejecuta en un entorno aislado
• Tiene su propia red interna
• Tiene su propio file system
• Es donde se ejecuta nuestra app
• Se encienden y apagan
https://images.techhive.com/images/article/2016/06/docker-images-vs-containers-100664049-large.idge.png
Primer contacto
Todos los objetos se identifican con un hash o un nombre (opcional)
Primer contacto
• Docker run [nombre de imagen]
• Ejecuta una image => crear un container y ejecutarlo
• Busca la imagen localmente
• Busca en el registro
• Por defecto hub.docker.com
• Ejecuta el container
Registry
• De donde se bajan imágenes
• Docker hace una copia local
• Por defecto dockerhub
• Podemos usar uno propio
• Ej: Azure
Tags y versiones
Tags
• Son arbitrarios
• Por defecto se toma “latest”
• No es buena práctica apuntar a “latest” en producción
• “latest” y una versión particular pueden tener el mismo hash (ser lo
mismo)
Creación de una imagen
• dockerfile
• Es una sucesión de “layers”
• Provee un lenguaje común sobre el entorno de ejecución
Imágenes base en dockerhub
• Las imágenes “oficiales” son las raíz
• Ej. Ubuntu
• Excepto en el caso de Microsoft
• Ej. Microsoft/aspnetcore
Ejecutar una app en una imagen
• https://github.com/g0t4/aspnetcore-generator-api
• Publicación local
• Crear nuestra imagen
• Seleccionar runtime base
• Copiar nuestro código publicado en la imagen
• Indicar punto de inicio
Comando útiles
• docker cp source_path container_id:dest_path
• -it => modo interactivo
• stats => estado
• Inspect container / imagen / volumen
• docker logs –f container
• docker exec -it new-container bash
Resumen
• Un contenedor es un proceso aislado (propia red, fs. Rápido y liviano)
• Una imagen es una molde para crear contenedores (es inmutable)
• Docker es un software para gestionar contenedores
• Un contenedor no es un microservicio y viceversa
• Puedo crear mis propias imágenes
• Existen registros públicos de imágenes
• En general las imágenes son un conjunto de layers que pueden ser otras
imágenes
• Un dockerfile me ayuda a agrupar los comandos para crear una imagen
• Una imagen es una forma excelente de distribuir una app porque lo hago
junto con sus dependencias o simplemente un dockerfile
Volúmenes
• Son “mapeos” un directorio del host hacía el contenedor
• Pueden ser bidireccionales
• Ej. Store de un servidor de bases de datos
• Todo lo que queremos que persista si borramos el contenedor
Compose
• docker-compose.yaml
• Es equivalente al dockerfile pero para lanzar contenedores
• Permite definir
• Grupos de contenedores para ser lanzados juntos
• Volúmenes
• Dependencias
• dockerfile a usar
• Imágenes a usar
• Agrega flexibilidad al despliegue
• Permite hacer transformaciones basado en entornos
Orquestación
• Cuando tenemos una app con muchos contenedores es complejo
manejar
• Despliegue
• Escalabilidad
• Dependencias
• Resilencia
• Para esto existen los orquestadores
• Swarn
• Kubernetes
• Service fabric
https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/docker-application-development-process/media/image1.png
Qué ofrece Azure?
• Azure container services
• Azure Kubernetes Services (AKS)
• App Service
• Container registry
• https://thenewstack.io/finally-linux-containers-really-will-run-
windows-linuxkit/
• https://github.com/g0t4/aspnetcore-generator-api
• https://dev.to/schwamster/docker-tutorial-with-for-aspnet-core
• https://docs.microsoft.com/en-us/dotnet/core/docker/intro-net-
docker
• https://www.microsoft.com/en-us/cloud-platform/containers
• https://azure.microsoft.com/es-es/services/kubernetes-service/
• https://koukia.ca/configuring-docker-swarm-as-container-
orchestrator-on-windows-1f89a2037dac

Más contenido relacionado

La actualidad más candente

Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2José Vázquez
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Santi Macias Rodriguez
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopRestorando
 
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 NodeJSJan Sanchez
 
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 osDavid Luque Quintana
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-dockerCLEFormación
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación DockerITPAMI
 
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ónMarcelo Ochoa
 
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
 
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 usoSergio Zambrano Delfa
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 

La actualidad más candente (19)

Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
Semana 7 Despliegue a producción ORACLE OCI
Semana 7   Despliegue a producción ORACLE OCISemana 7   Despliegue a producción ORACLE OCI
Semana 7 Despliegue a producción ORACLE OCI
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
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
 
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
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
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
 
Usando docker
Usando dockerUsando docker
Usando docker
 
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...
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a 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
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 

Similar a Docker for losers

An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... DockerArkhotech
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azureOscar Gensollen
 
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 2018Vicente Gerardo Guzman Lucio
 
docker.pdf
docker.pdfdocker.pdf
docker.pdfKenn70
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayMario IC
 
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
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
DockerparadesarrolloEric Zeidan
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para DummiesRaúl Unzué
 
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 URJCMicael Gallego
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakubDemian Raschkovan
 

Similar a Docker for losers (20)

Docker dotnet netbaires
Docker dotnet netbairesDocker dotnet netbaires
Docker dotnet netbaires
 
Docker Dotnet Málaga
Docker Dotnet MálagaDocker Dotnet Málaga
Docker Dotnet Málaga
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... Docker
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azure
 
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
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbday
 
Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Docker containers-itb-2021
Docker containers-itb-2021Docker containers-itb-2021
Docker containers-itb-2021
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para Dummies
 
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
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakub
 

Más de Leonardo Micheloni

Más de Leonardo Micheloni (15)

Docker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfDocker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdf
 
Mas alla de javascript con typescript
Mas alla de javascript con typescriptMas alla de javascript con typescript
Mas alla de javascript con typescript
 
Workshop clean code javascript
Workshop clean code javascriptWorkshop clean code javascript
Workshop clean code javascript
 
2019 commit solid typescript
2019 commit solid typescript2019 commit solid typescript
2019 commit solid typescript
 
Solid con typescript
Solid con typescriptSolid con typescript
Solid con typescript
 
Tdd desde las trincheras
Tdd desde las trincherasTdd desde las trincheras
Tdd desde las trincheras
 
Pipeline continuo con VSTS Azure DevOps
Pipeline continuo con VSTS Azure DevOpsPipeline continuo con VSTS Azure DevOps
Pipeline continuo con VSTS Azure DevOps
 
Clean code javascript + live coding
Clean code javascript + live codingClean code javascript + live coding
Clean code javascript + live coding
 
Un viaje por Cosmos DB
Un viaje por Cosmos DBUn viaje por Cosmos DB
Un viaje por Cosmos DB
 
Cosmos db gab2018
Cosmos db gab2018Cosmos db gab2018
Cosmos db gab2018
 
Cosmos DB in a nutshell
Cosmos DB in a nutshellCosmos DB in a nutshell
Cosmos DB in a nutshell
 
Esp8266 iothub Azure data analysis in real time
Esp8266 iothub Azure data analysis in real timeEsp8266 iothub Azure data analysis in real time
Esp8266 iothub Azure data analysis in real time
 
Clean code javascript
Clean code javascriptClean code javascript
Clean code javascript
 
Tdd y pair programming
Tdd y pair programmingTdd y pair programming
Tdd y pair programming
 
Blockchain, smart contracts y azure
Blockchain, smart contracts y azureBlockchain, smart contracts y azure
Blockchain, smart contracts y azure
 

Último

Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024eCommerce Institute
 
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024eCommerce Institute
 
Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024eCommerce Institute
 
Expo Construir 2024 agenda-workshops (2).pdf
Expo Construir 2024 agenda-workshops (2).pdfExpo Construir 2024 agenda-workshops (2).pdf
Expo Construir 2024 agenda-workshops (2).pdfTamanaTablada
 
Pablo Scasso - eCommerce Day Chile 2024
Pablo Scasso -  eCommerce Day Chile 2024Pablo Scasso -  eCommerce Day Chile 2024
Pablo Scasso - eCommerce Day Chile 2024eCommerce Institute
 
Presupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxPresupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxhugogabrielac1
 
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024eCommerce Institute
 
Suiwen He - eCommerce Day Chile 2024
Suiwen He  -  eCommerce  Day  Chile 2024Suiwen He  -  eCommerce  Day  Chile 2024
Suiwen He - eCommerce Day Chile 2024eCommerce Institute
 
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...angierangel29072017
 
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024eCommerce Institute
 
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024eCommerce Institute
 
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...eCommerce Institute
 
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfAct#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfXimenaGonzlez95
 
Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024eCommerce Institute
 

Último (14)

Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024
 
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
 
Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024
 
Expo Construir 2024 agenda-workshops (2).pdf
Expo Construir 2024 agenda-workshops (2).pdfExpo Construir 2024 agenda-workshops (2).pdf
Expo Construir 2024 agenda-workshops (2).pdf
 
Pablo Scasso - eCommerce Day Chile 2024
Pablo Scasso -  eCommerce Day Chile 2024Pablo Scasso -  eCommerce Day Chile 2024
Pablo Scasso - eCommerce Day Chile 2024
 
Presupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxPresupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptx
 
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
 
Suiwen He - eCommerce Day Chile 2024
Suiwen He  -  eCommerce  Day  Chile 2024Suiwen He  -  eCommerce  Day  Chile 2024
Suiwen He - eCommerce Day Chile 2024
 
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
 
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
 
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
 
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
 
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfAct#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
 
Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024
 

Docker for losers

  • 2. Agenda • Qué es Docker? • Qué es una imagen? • Qué es un contenedor? • Diferencia entre contenedor y máquina virtual • Cómo crear nuestras imágenes • Cómo crear contenedores • Otras cosas
  • 3. Qué es Docker • Una empresa • Un software para gestionar contenedores • No es el único • Ofrece un servicio pago
  • 4. Qué es un contenedor?
  • 5. The big picture • Un container es un proceso aislado • Tiene su propio file system • Tiene su propia red • Es la “base” de los microservicios actuales (pero no excluyente) • Docker <> microservicios • Microservicios no implica Docker
  • 6. Capacidades • Ejecutar una app sin instalar nada • Redis, Rabbit, PHP, Mongo, etc. • Platform specific software • Desarrollar en un entorno diferente • Desplegar lo mismo que se desarrolló
  • 7. Diferencias con una máquina virtual http://apachebooster.com/kb/wp-content/uploads/2017/09/VM_vs_Docker.png
  • 8. En Windows Windows 10 pro 64 Windows 10 ent 64 Hyper-V
  • 9.
  • 11. Qué es una imagen? • Es el “molde” para crear contenedores • Son inmutables • Se pueden crear localmente • Se pueden obtener desde “registros” • Similar a npm, nuget, etc.
  • 12. Imágenes vs Contenedores • Imagen • Es similar a una clase • Se utiliza para instanciar contenedores • Es inmutable • Se pueden crear múltiples “instancias” • Contenedor • Es similar a un objeto • Se ejecuta en un entorno aislado • Tiene su propia red interna • Tiene su propio file system • Es donde se ejecuta nuestra app • Se encienden y apagan https://images.techhive.com/images/article/2016/06/docker-images-vs-containers-100664049-large.idge.png
  • 13. Primer contacto Todos los objetos se identifican con un hash o un nombre (opcional)
  • 14. Primer contacto • Docker run [nombre de imagen] • Ejecuta una image => crear un container y ejecutarlo • Busca la imagen localmente • Busca en el registro • Por defecto hub.docker.com • Ejecuta el container
  • 15.
  • 16. Registry • De donde se bajan imágenes • Docker hace una copia local • Por defecto dockerhub • Podemos usar uno propio • Ej: Azure
  • 18. Tags • Son arbitrarios • Por defecto se toma “latest” • No es buena práctica apuntar a “latest” en producción • “latest” y una versión particular pueden tener el mismo hash (ser lo mismo)
  • 19. Creación de una imagen • dockerfile • Es una sucesión de “layers” • Provee un lenguaje común sobre el entorno de ejecución
  • 20. Imágenes base en dockerhub • Las imágenes “oficiales” son las raíz • Ej. Ubuntu • Excepto en el caso de Microsoft • Ej. Microsoft/aspnetcore
  • 21. Ejecutar una app en una imagen • https://github.com/g0t4/aspnetcore-generator-api • Publicación local • Crear nuestra imagen • Seleccionar runtime base • Copiar nuestro código publicado en la imagen • Indicar punto de inicio
  • 22. Comando útiles • docker cp source_path container_id:dest_path • -it => modo interactivo • stats => estado • Inspect container / imagen / volumen • docker logs –f container • docker exec -it new-container bash
  • 23. Resumen • Un contenedor es un proceso aislado (propia red, fs. Rápido y liviano) • Una imagen es una molde para crear contenedores (es inmutable) • Docker es un software para gestionar contenedores • Un contenedor no es un microservicio y viceversa • Puedo crear mis propias imágenes • Existen registros públicos de imágenes • En general las imágenes son un conjunto de layers que pueden ser otras imágenes • Un dockerfile me ayuda a agrupar los comandos para crear una imagen • Una imagen es una forma excelente de distribuir una app porque lo hago junto con sus dependencias o simplemente un dockerfile
  • 24. Volúmenes • Son “mapeos” un directorio del host hacía el contenedor • Pueden ser bidireccionales • Ej. Store de un servidor de bases de datos • Todo lo que queremos que persista si borramos el contenedor
  • 25. Compose • docker-compose.yaml • Es equivalente al dockerfile pero para lanzar contenedores • Permite definir • Grupos de contenedores para ser lanzados juntos • Volúmenes • Dependencias • dockerfile a usar • Imágenes a usar • Agrega flexibilidad al despliegue • Permite hacer transformaciones basado en entornos
  • 26.
  • 27. Orquestación • Cuando tenemos una app con muchos contenedores es complejo manejar • Despliegue • Escalabilidad • Dependencias • Resilencia • Para esto existen los orquestadores • Swarn • Kubernetes • Service fabric
  • 28.
  • 30. Qué ofrece Azure? • Azure container services • Azure Kubernetes Services (AKS) • App Service • Container registry
  • 31. • https://thenewstack.io/finally-linux-containers-really-will-run- windows-linuxkit/ • https://github.com/g0t4/aspnetcore-generator-api • https://dev.to/schwamster/docker-tutorial-with-for-aspnet-core • https://docs.microsoft.com/en-us/dotnet/core/docker/intro-net- docker • https://www.microsoft.com/en-us/cloud-platform/containers • https://azure.microsoft.com/es-es/services/kubernetes-service/ • https://koukia.ca/configuring-docker-swarm-as-container- orchestrator-on-windows-1f89a2037dac

Notas del editor

  1. Linux en Windows https://thenewstack.io/finally-linux-containers-really-will-run-windows-linuxkit/
  2. VM: you can size it. VM: hypervisor => software, hardware
  3. Docker image ls Docker container ls Docker ps Docker images Docker ps -a
  4. Docker run hello-world
  5. Docker –it alpine Docker –name test alpine Reusar containers docker run –n hello hello-world
  6. Las imágenes tiene diferentes tags pero son las mismas Los tags indican “versiones” en general “latest” es la última pero no es recomendable usarla Docker run --rm –it Microsoft/donet-runtime dotnet
  7. Docker container inspect nro
  8. Docker build –t test:1 .
  9. El container tiene su propio file system aislado
  10. docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=P@ssword123' -p 1433:1433 -d microsoft/mssql-server-linux:2017-CU8 docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=P@ssword123' -p 1433:1433 -d -v mssql-server-linux-data:/var/opt/mssql/data microsoft/mssql-server-linux:2017-CU8
  11. Ejemplo de lanzar sqlserver con el volumen montado