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

Linux contêineres na unha (The Developers Conference POA 2017)

Linux contêineres na unha (The Developers Conference POA 2017)

Palestra apresentada dia 11 de novembro de 2017 no The Developers conference de Porto Alegre. Mostramos um pouco do que é Docker, como que funcionar 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)

Wellington F. Silva

November 11, 2017
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, docker community leader
  2. Agenda • Que é Docker • O que são contêineres

    Linux • O que são Kernel Namespaces • O que são CGroups • O que são Rootfs • Demos
  3. Disclaimer 1 Apesar de acompanhar há quase 2 anos não

    sou especialista em Golang, fiz poucas coisas e por conta própria.
  4. Disclaimer 2 Palestras inspirada nas talks da Liz Rice (@lizrice)

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

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

    Security • Evangelista Go Lang • Biker
  7. Tipos de Virtualização • Full Virtualization • Partial Virtualization •

    Paravirtualization • OS Level Virtualization Docker
  8. Processos • Processo Linux com ID atribuído (PID) • Podem

    ser listados (com ps) dentro do contêiner ou fora, no host
  9. 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
  10. Kernel Namespaces • IPC - interprocess communication • PID -

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

    Processos • NET- rede • UTS - Unix timesharing system, recursos do kernel • USER - usuários
  12. 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
  13. CGroups • CPU • Memória • I/O em disco •

    Interface de rede • Hardwares periféricos 
 (pen drives, cameras, etc)
  14. Rootfs • Filesystem base • Onde os arquivos serão montados

    • Em linhas gerais é o / (barra) do Linux empacotado
  15. + Sobre Docker • Curso Docker: 
 http://bit.ly/curso-docker • Telegram:

    
 http://t.me/dockerbr • Slacks:
 http://bit.ly/docker-slack
 http://dockr.ly/community • Meetup:
 http://bit.ly/meetup- docker-sp
  16. + Sobre Go • Tutoriais: 
 https://github.com/crgimenes/Go-Hands-On/
 https://tour.golang.org
 • Telegrams:

    
 http://t.me/go_br
 http://t.me/GopheliaCoding
 • Slack:
 https://invite.slack.golangbridge.org