$30 off During Our Annual Pro Sale. View Details »

Afinal, o que é Docker? (Webinar Umbler)

Afinal, o que é Docker? (Webinar Umbler)

Webinar de introdução mostrando na essência o que são contêineres (Linux e Windows), da onde vem o Docker, demo montando contêineres manualmente usando Go Lang, e o estado atual da adoção da tecnologia.

Wellington F. Silva

November 25, 2016
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. AFINAL, O QUE É DOCKER?
    WEBINAR

    View Slide

  2. WHO AM I?
    WELLINGTON F. SILVA
    ▸ AKA: wsilva | boina | tom | fisi
    ▸ Pai
    ▸ Técnico Telecom
    ▸ Programador
    ▸ Instrutor
    ▸ DevOps
    ▸ Escritor

    View Slide

  3. AGENDA
    ▸ Virtualização
    ▸ Virtual Machine x
    Contêineres
    ▸ Histórico
    ▸ Container from scratch
    ▸ Evolução
    ▸ Arquitetura
    ▸ OSX x Windows x Linux
    ▸ Imagens
    ▸ Adoção do Docker

    View Slide

  4. O QUE É DOCKER?

    View Slide

  5. View Slide

  6. View Slide

  7. FERRAMENTA PARA
    VIRTUALIZAÇÃO NO NÍVEL DO
    SISTEMAS OPERACIONAL
    by wsilva
    O QUE É O DOCKER?

    View Slide

  8. TIPOS DE VIRTUALIZAÇÃO

    View Slide

  9. O QUE É O DOCKER?
    TIPOS DE VIRTUALIZAÇÃO
    ▸ Full Virtualization

    View Slide

  10. O QUE É O DOCKER?
    TIPOS DE VIRTUALIZAÇÃO
    ▸ Full Virtualization
    ▸ Partial Virtualization

    View Slide

  11. O QUE É O DOCKER?
    TIPOS DE VIRTUALIZAÇÃO
    ▸ Full Virtualization
    ▸ Partial Virtualization
    ▸ Paravirtualization

    View Slide

  12. O QUE É O DOCKER?
    TIPOS DE VIRTUALIZAÇÃO
    ▸ Full Virtualization
    ▸ Partial Virtualization
    ▸ Paravirtualization
    ▸ OS Level Virtualization

    View Slide

  13. O QUE É O DOCKER?
    TIPOS DE VIRTUALIZAÇÃO
    ▸ Full Virtualization
    ▸ Partial Virtualization
    ▸ Paravirtualization
    ▸ OS Level Virtualization <= DOCKER

    View Slide

  14. View Slide

  15. VMS X CONTÊINERES

    View Slide

  16. SERVIDOR
    SERVIDOR
    HOST OS
    HOST OS
    CONTAINER ENGINE
    HYPERVISOR
    BINS/LIBS
    GUEST OS BINS/LIBS
    GUEST OS
    BINS/LIBS BINS/LIBS APP APP
    APP APP
    VM VM
    Container Container
    VMs x Contêineres

    View Slide

  17. SERVIDOR
    SERVIDOR
    DEBIAN LINUX
    DEBIAN LINUX
    DOCKER
    VIRTUALBOX
    BINS/LIBS
    CENTOS LINUX BINS/LIBS
    UBUNTU LINUX
    BINS/LIBS BINS/LIBS NGINX MYSQL
    NGINX MYSQL
    VM VM
    Container Container
    VMs x Contêineres

    View Slide

  18. HISTÓRICO

    View Slide

  19. HISTÓRICO
    HISTÓRIA
    ▸ 21/03/2013 1ª Demo

    View Slide

  20. HISTÓRICO
    HISTÓRIA
    ▸ 21/03/2013 1ª Demo
    ▸ Opensource(Apache License 2.0)

    View Slide

  21. HISTÓRICO
    HISTÓRIA
    ▸ 21/03/2013 1ª Demo
    ▸ Opensource(Apache License 2.0)
    ▸ Base para dotCloud

    View Slide

  22. HISTÓRICO
    HISTÓRIA
    ▸ 21/03/2013 1ª Demo
    ▸ Opensource(Apache License 2.0)
    ▸ Base para dotCloud
    ▸ 23/07/2013 - Ben Golub, CEO da
    Gluster e da Plaxo se une ao time

    View Slide

  23. HISTÓRICO
    HISTÓRIA
    ▸ 21/03/2013 1ª Demo
    ▸ Opensource(Apache License 2.0)
    ▸ Base para dotCloud
    ▸ 23/07/2013 - Ben Golub, CEO da
    Gluster e da Plaxo se une ao time
    ▸ 22/01/2014 2º aporte de US$ 15
    mi

    View Slide

  24. HISTÓRICO
    HISTÓRIA
    ▸ 23/07/2014 Compra da Orchard
    (FIG)

    View Slide

  25. HISTÓRICO
    HISTÓRIA
    ▸ 23/07/2014 Compra da Orchard
    (FIG)
    ▸ 16/09/2014 3º aporte US$ 40 mi

    View Slide

  26. HISTÓRICO
    HISTÓRIA
    ▸ 23/07/2014 Compra da Orchard
    (FIG)
    ▸ 16/09/2014 3º aporte US$ 40 mi
    ▸ 15/10/2014 Microsoft anuncia
    Docker no Windows 2016 sever

    View Slide

  27. HISTÓRICO
    HISTÓRIA
    ▸ 23/07/2014 Compra da Orchard
    (FIG)
    ▸ 16/09/2014 3º aporte US$ 40 mi
    ▸ 15/10/2014 Microsoft anuncia
    Docker no Windows 2016 sever
    ▸ 14/04/2015 4º aporte US$ 95 mi

    View Slide

  28. HISTÓRICO
    HISTÓRIA
    ▸ 23/07/2014 Compra da Orchard
    (FIG)
    ▸ 16/09/2014 3º aporte US$ 40 mi
    ▸ 15/10/2014 Microsoft anuncia
    Docker no Windows 2016 sever
    ▸ 14/04/2015 4º aporte US$ 95 mi
    ▸ 22/06/2015 Open Container
    Initiative

    View Slide

  29. COMO FUNCIONA?

    View Slide

  30. PROCESSOS
    +
    KERNEL NAMESPACES
    +
    CGROUPS

    View Slide

  31. PROCESSOS
    PID=1

    View Slide

  32. KERNEL NAMESPACES
    (O QUE O PROCESSO PODE VER)

    View Slide

  33. COMO FUNCIONA?
    KERNEL NAMESPACES
    ▸ IPC - interprocess communication

    View Slide

  34. COMO FUNCIONA?
    KERNEL NAMESPACES
    ▸ IPC - interprocess communication
    ▸ PID - Processos

    View Slide

  35. COMO FUNCIONA?
    KERNEL NAMESPACES
    ▸ IPC - interprocess communication
    ▸ PID - Processos
    ▸ NET- rede

    View Slide

  36. COMO FUNCIONA?
    KERNEL NAMESPACES
    ▸ IPC - interprocess communication
    ▸ PID - Processos
    ▸ NET- rede
    ▸ UTS - Unix timesharing system, recursos do kernel

    View Slide

  37. COMO FUNCIONA?
    KERNEL NAMESPACES
    ▸ IPC - interprocess communication
    ▸ PID - Processos
    ▸ NET- rede
    ▸ UTS - Unix timesharing system, recursos do kernel
    ▸ USER - usuários

    View Slide

  38. COMO FUNCIONA?
    KERNEL NAMESPACES
    ▸ IPC - interprocess communication
    ▸ PID - Processos
    ▸ NET- rede
    ▸ UTS - Unix timesharing system, recursos do kernel
    ▸ USER - usuários
    ▸ MNT - filesystem e pontos de montagem

    View Slide

  39. CGROUPS
    (O QUE O PROCESSO PODE USAR)

    View Slide

  40. COMO FUNCIONA?
    CGROUPS
    ▸ CPU

    View Slide

  41. COMO FUNCIONA?
    CGROUPS
    ▸ CPU
    ▸ Memória

    View Slide

  42. COMO FUNCIONA?
    CGROUPS
    ▸ CPU
    ▸ Memória
    ▸ I/O em disco

    View Slide

  43. COMO FUNCIONA?
    CGROUPS
    ▸ CPU
    ▸ Memória
    ▸ I/O em disco
    ▸ Interface de rede

    View Slide

  44. COMO FUNCIONA?
    CGROUPS
    ▸ CPU
    ▸ Memória
    ▸ I/O em disco
    ▸ Interface de rede
    ▸ Hardwares periféricos (pen drive, camera, etc)

    View Slide

  45. DEMO

    View Slide

  46. https://github.com/wsilva/container-from-scratch-demo

    View Slide

  47. EVOLUÇÃO

    View Slide

  48. EVOLUÇÃO
    EVOLUÇÃO
    ▸ Libvirt / LXC

    View Slide

  49. EVOLUÇÃO
    EVOLUÇÃO
    ▸ Libvirt / LXC
    ▸ Libcontainer

    View Slide

  50. EVOLUÇÃO
    EVOLUÇÃO
    ▸ Libvirt / LXC
    ▸ Libcontainer
    ▸ runC

    View Slide

  51. EVOLUÇÃO
    EVOLUÇÃO
    ▸ Libvirt / LXC
    ▸ Libcontainer
    ▸ runC
    ▸ ContainerD

    View Slide

  52. ARQUITETURA

    View Slide

  53. DOCKER HOST
    Imagens
    DAEMON
    Volumes
    Containers
    KITEMATIC
    DOCKER CLIENT
    DOCKER PULL
    DOCKER PUSH
    DOCKER BUILD
    DOCKER RUN
    DOCKER PS
    DOCKER IMAGES
    DOCKER REGISTRY (HUB)
    HTTP
    CURL
    WGET

    View Slide

  54. WINDOWS VS
    OSX VS
    LINUX

    View Slide

  55. CONTÊINERES LINUX
    LINUX (DOCKER HOST)
    WINDOWS
    OSX
    VM LINUX (DOCKER HOST)
    DOCKER CLIENT
    DOCKER CLIENT
    VM LINUX (DOCKER HOST)
    DOCKER CLIENT
    DOCKER DAEMON
    DOCKER DAEMON
    DOCKER DAEMON

    View Slide

  56. CONTÊINERES WINDOWS
    WINDOWS (DOCKER HOST) LINUX
    OSX
    VM WINDOWS (DOCKER HOST)
    DOCKER CLIENT
    DOCKER CLIENT DOCKER CLIENT
    DOCKER DAEMON DOCKER DAEMON
    DOCKER DAEMON
    VM WINDOWS (DOCKER HOST)

    View Slide

  57. ESTADOS DE UM CONTÊINER

    View Slide

  58. CREATE
    STOPPED RUNNING
    PAUSED
    CREATE
    DESTROY
    DELETED
    START
    docker run
    docker create
    docker

    start
    docker rm
    RESTART
    docker kill
    docker

    stop
    KILL
    DIE
    DIE
    STOP
    DIE
    START
    RESTART
    PAUSE
    UNPAUSE
    DIE
    OOM
    docker 

    pause
    docker

    restart
    docker unpause
    exit
    killed
    yes
    no

    View Slide

  59. IMAGENS

    View Slide

  60. View Slide

  61. View Slide

  62. View Slide

  63. View Slide

  64. docker history nginx

    View Slide

  65. ADOÇÃO

    View Slide

  66. https://www.datadoghq.com/docker-adoption/

    View Slide

  67. https://www.datadoghq.com/docker-adoption/

    View Slide

  68. https://www.datadoghq.com/docker-adoption/

    View Slide

  69. https://www.datadoghq.com/docker-adoption/

    View Slide

  70. https://www.datadoghq.com/docker-adoption/

    View Slide

  71. TO BE CONTINUED…
    MAIS SOBRE DOCKER
    ▸ https://docs.docker.com
    ▸ https://telegram.me/dockerbr
    ▸ http://docker-br.herokuapp.com
    ▸ https://community.docker.com
    ▸ http://bit.ly/curso-docker

    View Slide