Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Docker Dotnet Málaga

234 vues

Publié le

Slides utilizados en mi charla sobre Docker en Dotnet Málaga 2018.
http://dotnetmalaga.es/2018/
Videos sobre el tema disponibles acá:
https://www.youtube.com/playlist?list=PLLJikjug8HYBGUYVbMysnYjCDsz1OVsVa

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Docker Dotnet Málaga

  1. 1. Docker From zero to Hero Leonardo Micheloni @leomicheloni
  2. 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 • compose • volumes • orquestación @leomicheloni
  3. 3. Qué es Docker • Una empresa • Un software para gestionar contenedores • No es el único • Ofrece un servicio pago @leomicheloni
  4. 4. Qué es un contenedor? @leomicheloni
  5. 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 @leomicheloni
  6. 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ó. @leomicheloni
  7. 7. Diferencias con una máquina virtual http://apachebooster.com/kb/wp-content/uploads/2017/09/VM_vs_Docker.png @leomicheloni
  8. 8. En Windows Windows 10 pro 64 Windows 10 ent 64 Hyper-V @leomicheloni
  9. 9. Imágenes y contenedores https://cdn.dribbble.com/users/531222/screenshots/3477342/ingagro_nomos3-iloveimg-compressed.gif @leomicheloni
  10. 10. 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. • Se pueden crear a partir de otras imágenes.
  11. 11. 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 @leomicheloni
  12. 12. Primer contacto Todos los objetos se identifican con un hash o un nombre (opcional) @leomicheloni
  13. 13. 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 • (agregar diagrama) @leomicheloni
  14. 14. @leomicheloni
  15. 15. Registry • De donde se bajan imágenes • Docker hace una copia local • Por defecto dockerhub • Podemos usar uno propio • Ej: Azure container registry @leomicheloni
  16. 16. Tags y versiones @leomicheloni
  17. 17. 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) @leomicheloni
  18. 18. Creación de una imagen • dockerfile • Es una sucesión de “layers” • Provee un lenguaje común sobre el entorno de ejecución @leomicheloni
  19. 19. Imágenes base en dockerhub • Las imágenes “oficiales” son las raíz • Ej. Ubuntu • Excepto en el caso de Microsoft • Ej. Microsoft/aspnetcore @leomicheloni
  20. 20. 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. @leomicheloni
  21. 21. Comando útiles @leomicheloni
  22. 22. Resumen • Docker es un software para gestionar contenedores. • Un contenedor es un proceso aislado (propio file system. Rápido y liviano). • Una imagen es una molde para crear contenedores (es inmutable). • 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. • Un contenedor es una instancia de una imagen. • Un contenedor no es un microservicio y viceversa. • Una imagen es una forma excelente de distribuir una app porque lo hago junto con sus dependencias o simplemente un dockerfile. @leomicheloni
  23. 23. Otros temas @leomicheloni
  24. 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 @leomicheloni
  25. 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 • Genera un red interna privada • Permite hacer transformaciones basado en entornos @leomicheloni
  26. 26. @leomicheloni
  27. 27. @leomicheloni
  28. 28. Visual Studio support and debugging
  29. 29. 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 @leomicheloni
  30. 30. ¿Preguntas? @leomicheloni
  31. 31. Referencias • 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 @leomicheloni
  32. 32. @leomicheloni

×