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

Afinal, o que é Docker? (Palestras gratuitas da Novatec)

Afinal, o que é Docker? (Palestras gratuitas da Novatec)

Palestra apresentada dia 21 de fevereiro de 2017 no 2º meetup da PagSeguro ministrado no Centro de Treinamento da Novatec em São Paulo. Palestra trouxe o que é o Docker, como funciona, comparação com os paradigmas atuais além de uma série de demonstrações de como o Docker pode ser utilizado de maneira básica, de maneiras não tão convencionais e demonstrações em produção.

Wellington F. Silva

February 22, 2017
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. Afinal, o que é
    DOCKER?

    View Slide

  2. Wellington F. Silva
    contato:
    @_wsilva
    nicks:
    wsilva, boina, tom, fisi
    funções:
    pai, tec. telecom,
    programador, instrutor,
    escritor

    View Slide

  3. Agenda
    • Tipos de Virtualização
    • O que é Docker
    • A Docker
    • O Docker
    • Como que funciona
    • A arquitetura
    • O que dá para fazer

    View Slide

  4. Disclaimer
    • Vamos mostrar o que é o Docker e a Docker,
    como funciona, faremos a demonstração de
    alguns exemplos e mostrar algumas coisas que
    dá para se fazer usando Docker.
    • Não mostraremos instalação, configuração,
    preparação de ambiente ou coisas similares.
    • A ideia é mostrar o poder do Docker.

    View Slide

  5. O que é DOCKER?

    View Slide

  6. View Slide

  7. View Slide

  8. O que é a DOCKER?

    View Slide

  9. A Docker
    • 21/03/2013 1ª Demo

    View Slide

  10. A Docker
    • 21/03/2013 1ª Demo
    • Opensource 

    (Apache License 2.0)

    View Slide

  11. • 21/03/2013 1ª Demo
    • Opensource 

    (Apache License 2.0)
    • Base para dotCloud
    A Docker

    View Slide

  12. • 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
    A Docker

    View Slide

  13. • 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
    A Docker

    View Slide

  14. • 23/07/2014 Compra da Orchard (fig)
    A Docker

    View Slide

  15. • 23/07/2014 Compra da Orchard (fig)
    • 16/09/2014 3º aporte US$ 40 mi
    A Docker

    View Slide

  16. • 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
    A Docker

    View Slide

  17. • 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
    A Docker

    View Slide

  18. • 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 (OCI)
    A Docker

    View Slide

  19. O que é o DOCKER?

    View Slide

  20. –Wellington F. Silva
    “Ferramenta para
    virtualização no nível do
    Sistema Operacional.”

    View Slide

  21. Tipos de
    Virtualização

    View Slide

  22. Tipos de Virtualização
    • Full Virtualization

    View Slide

  23. Tipos de Virtualização
    • Full Virtualization
    • Partial Virtualization

    View Slide

  24. Tipos de Virtualização
    • Full Virtualization
    • Partial Virtualization
    • Paravirtualization

    View Slide

  25. Tipos de Virtualização
    • Full Virtualization
    • Partial Virtualization
    • Paravirtualization
    • OS Level Virtualization

    View Slide

  26. Tipos de Virtualização
    • Full Virtualization
    • Partial Virtualization
    • Paravirtualization
    • OS Level Virtualization
    <<< Docker

    View Slide

  27. Docker NÃO é VM

    View Slide

  28. 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

    View Slide

  29. Diferentes, não excludentes
    SERVIDOR
    XEN
    UBUNTU LINUX
    DOCKER
    ENGINE
    BINS/LIBS MYSQL
    DEBIAN
    LINUX
    BINS/LIBS
    NGINX
    BINS/LIBS
    PHP-FPM
    DOCKER
    ENGINE
    WINDOWS
    2016 SERVER
    BINS/LIBS
    SQL SERVER

    View Slide

  30. Como Funciona?

    View Slide

  31. PROCESSOS
    +
    KERNEL NAMESPACES
    +
    CGROUPS

    View Slide

  32. PROCESSOS
    Aqueles que matamos com kill -9

    View Slide

  33. Processos
    • Processo Linux com ID atribuído (PID)

    View Slide

  34. Processos
    • Processo Linux com ID atribuído (PID)
    • Pode ser listados (com ps) dentro do contêiner
    ou fora, no host

    View Slide

  35. Processos
    • Processo Linux com ID atribuído (PID)
    • Pode ser listados (com ps) dentro do contêiner
    ou fora, no host
    • Dentro do contêiner o PID=1, fora (no host) vai
    ter valor alto

    View Slide

  36. KERNEL
    NAMESPACES
    Tudo aquilo que o processo pode "ver"

    View Slide

  37. Kernel Namespaces
    • IPC - interprocess communication

    View Slide

  38. Kernel Namespaces
    • IPC - interprocess communication
    • PID - Processos

    View Slide

  39. Kernel Namespaces
    • IPC - interprocess communication
    • PID - Processos
    • NET- rede

    View Slide

  40. Kernel Namespaces
    • IPC - interprocess communication
    • PID - Processos
    • NET- rede
    • UTS - Unix timesharing system, recursos do
    kernel

    View Slide

  41. Kernel Namespaces
    • IPC - interprocess communication
    • PID - Processos
    • NET- rede
    • UTS - Unix timesharing system, recursos do
    kernel
    • USER - usuários

    View Slide

  42. 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

  43. CGROUPS
    Tudo aquilo que o processo pode "usar"

    View Slide

  44. CGroups
    • CPU

    View Slide

  45. CGroups
    • CPU
    • Memória

    View Slide

  46. CGroups
    • CPU
    • Memória
    • I/O em disco

    View Slide

  47. CGroups
    • CPU
    • Memória
    • I/O em disco
    • Interface de rede

    View Slide

  48. CGroups
    • CPU
    • Memória
    • I/O em disco
    • Interface de rede
    • Hardwares periféricos 

    (pen drives, cameras, etc)

    View Slide

  49. Como é a
    Arquitetura?

    View Slide

  50. 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
    Contêineres Linux

    View Slide

  51. 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)
    Contêineres Windows

    View Slide

  52. 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

  53. –Linus Torvalds
    “Talk is cheap. Show me
    the code.”

    View Slide

  54. Docker

    View Slide

  55. Docker Compose

    View Slide

  56. GUI Apps

    View Slide

  57. DIND

    View Slide

  58. Docker craft

    View Slide

  59. Docker Swarm

    View Slide

  60. 17-20 Abril | Austin
    www.dockercon.com

    View Slide

  61. Grato

    Próximos Passos:
    • Curso: 

    http://bit.ly/curso-docker
    • Telegram: 

    http://t.me/dockerbr
    • Slack:

    http://docker-
    br.herokuapp.com
    • Meetup:

    http://bit.ly/meetup-
    docker-sp

    View Slide