Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Afina o que é Docker? (Webinar Cloud Weekend)

Afina o que é Docker? (Webinar Cloud Weekend)

Palestra gravada e apresentada dia 25/26 de agosto de 2018 no webinar apresentado no Cloud Week. Mostramos o que são contêineres Linux, histórico e origens, diferenças dos tipos de virtualização e como que funciona o isolamento dos processos e os recursos utilizados para o tal. No final fizemos uma demonstração disponível em (https://github.com/wsilva/container-from-scratch-demo) montando contêineres usando um programa curto escrito Go lang.

Wellington F. Silva

August 25, 2018
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. Wellington F. Silva contato: @_wsilva nicks: wsilva, boina, tom, fisi

    roles: pai, tec. telecom, programador, sysadmin, instrutor, escritor, php zce, docker community leader, docker certified associate
  2. Agenda • Disclaimer • O que são contêineres Linux •

    Tipos de virtualização • A Docker e O Docker • O que são Kernel Namespaces, CGroups e Rootfs • Demos
  3. Disclaimer Palestra inspirada nas talks da Liz Rice (@lizrice) e

    no artigo* de 2016 de Julian Friedman (@doctor_julz) http://bit.ly/container-golang *
  4. Julian Friedman • Engenheiro líder do Garden (tecnologia de contêineres

    da Cloud Foundry's) • Trabalha para IBM • Defensor do Open Source
  5. Liz Rice • Especialista em segurança de contêineres na Aqua

    Security • Contribuidora de vários projetos open source Kube-bench, Docker-bench, microscanner • Evangelista Go Lang
  6. Tipos de Virtualização • Full Virtualization • Partial Virtualization •

    Paravirtualization • OS Level Virtualization 
 (Docker, rkt, Garden, Guardian, containerD, cri- O)
  7. U nix / C hroot BSD FreeBSD Jails / Solaris

    Zones O penVZ Parallels C groups Process C ontainers AIX / W pars LXC D ocker, rkt, cloud foundry, 
 C ontainerD 1982 2000 2005 2006 2007 2008 >= 2013
  8. • 21/03/2013 1ª Demo • Opensource 
 (Apache License 2.0)

    • Base para dotCloud • Recebeu 4 aportes (15mi, 40mi, 95mi,18mi usd)
 http://bit.ly/solomon-light-talk * A Docker
  9. SERVIDOR SERVIDOR HOST OS HOST OS CONTAINER ENGINE HYPERVISOR BINS/LIBS

    GUEST OS APP GUEST OS BINS/LIBS BINS/LIBS APP APP APP VM VM Container Container
  10. 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
  11. Processos • Processo Linux com ID atribuído (PID) • Podem

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

    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
  13. Kernel Namespaces • IPC - Interprocess communication • PID -

    Processos • NET- Rede • UTS - Unix timesharing system
  14. Kernel Namespaces • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system • USER - Usuários e grupos
  15. Kernel Namespaces • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system • USER - Usuários e grupos • MNT - Pontos de montagem
  16. CGroups • CPU • Memória • I/O em disco •

    Interface de rede • Hardwares periféricos 
 (pen drives, cameras, etc)
  17. Rootfs • Filesystem é uma hierarquia de diretórios • Rootfs

    é o filesystem base onde os demais sistemas de arquivos são montados
  18. Rootfs • Filesystem é uma hierarquia de diretórios • Rootfs

    é o filesystem base onde os demais sistemas de arquivos são montados • Em linhas gerais é o / (barra) de uma distribuição Linux
  19. Resumo • Processo 
 (é o que roda a aplicação)

    • CGroups e Namespaces 
 (como o processo vai rodar) • Rootfs 
 (onde o processo vai rodar)