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

Linux contêineres na unha (Gophercon Brasil 2017)

Linux contêineres na unha (Gophercon Brasil 2017)

Palestra apresentada dia 17 de novembro de 2017 no Gophercon Brasil em Florianópolis. 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 17, 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 • Disclaimers • 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 Palestra 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 • Ótima ciclista
  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
  11. Kernel Namespaces • IPC - interprocess communication • PID -

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

    Processos • NET- rede • UTS - Unix timesharing system • USER - Usuários e grupos • MNT - 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 é uma hierarquia de diretórios • Rootfs

    é o filesystem base onde os demais sistemas de arquivos são montados
  15. 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
  16. Resumo • Processo (é o que roda) • CGroups e

    Namespaces (Como ele roda) • Rootfs (o que ele roda)
  17. + 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
  18. + 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