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 for losers

173 vues

Publié le

Introducción a los principios básicos de Docker

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Docker for losers

  1. 1. for losers
  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
  3. 3. Qué es Docker • Una empresa • Un software para gestionar contenedores • No es el único • Ofrece un servicio pago
  4. 4. Qué es un contenedor?
  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
  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ó
  7. 7. Diferencias con una máquina virtual http://apachebooster.com/kb/wp-content/uploads/2017/09/VM_vs_Docker.png
  8. 8. En Windows Windows 10 pro 64 Windows 10 ent 64 Hyper-V
  9. 9. Imágenes y contenedores https://cdn.dribbble.com/users/531222/screenshots/3477342/ingagro_nomos3-iloveimg-compressed.gif
  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.
  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
  12. 12. Primer contacto Todos los objetos se identifican con un hash o un nombre (opcional)
  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
  14. 14. Registry • De donde se bajan imágenes • Docker hace una copia local • Por defecto dockerhub • Podemos usar uno propio • Ej: Azure
  15. 15. Tags y versiones
  16. 16. 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)
  17. 17. Creación de una imagen • dockerfile • Es una sucesión de “layers” • Provee un lenguaje común sobre el entorno de ejecución
  18. 18. Imágenes base en dockerhub • Las imágenes “oficiales” son las raíz • Ej. Ubuntu • Excepto en el caso de Microsoft • Ej. Microsoft/aspnetcore
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/docker-application-development-process/media/image1.png
  26. 26. Qué ofrece Azure? • Azure container services • Azure Kubernetes Services (AKS) • App Service • Container registry
  27. 27. • 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

×