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

O que é o Docker afinal? (Workshop Novatec)

O que é o Docker afinal? (Workshop Novatec)

Workshop de introdução mostrando na essência o que são contêineres (Linux e Windows), da onde vem o Docker, o que são LXC e demos montando contêineres manualmente, com LXC e com Docker além de alguns exemplos básicos de utilização do Docker.

Wellington F. Silva

October 06, 2016
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. WHO AM I? WELLINGTON F. SILVA ▸ AKA: wsilva |

    boina | tom | fisi ▸ Pai ▸ Técnico Telecom ▸ Programador ▸ Instrutor ▸ Devops ▸ Escritor
  2. AGENDA ▸ Virtualização ▸ Histórico ▸ Container from scratch ▸

    LXC - Linux Containers ▸ Virtual Machine x Contêineres ▸ Evolução ▸ Arquitetura ▸ OSX x Windows x Linux ▸ Imagens ▸ Hands On (comandos e exemplos)
  3. O QUE É O DOCKER? TIPOS DE VIRTUALIZAÇÃO ▸ Full

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

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

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

    Virtualization ▸ Partial Virtualization ▸ Paravirtualization ▸ OS Level Virtualization <= DOCKER
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. COMO FUNCIONA? KERNEL NAMESPACES ▸ IPC - interprocess communication ▸

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

    PID - Processos ▸ NET- rede ▸ UTS - Unix timesharing system, recursos do kernel ▸ USER - usuários
  14. 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
  15. COMO FUNCIONA? CGROUPS ▸ CPU ▸ Memória ▸ I/O em

    disco ▸ Interface de rede ▸ Hardwares periféricos (pen drive, camera, etc)
  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
  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
  18. 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
  19. 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
  20. WINDOWS (DOCKER HOST) LINUX OSX VM WINDOWS (DOCKER HOST) DOCKER

    CLIENT DOCKER CLIENT DOCKER CLIENT DOCKER DAEMON DOCKER DAEMON DOCKER DAEMON CONTÊINERES WINDOWS VM WINDOWS (DOCKER HOST)
  21. TRABALHANDO COM IMAGENS CRIANDO IMAGEM A PARTIR DE CONTÊINER $

    docker commit container_name ou
 $ docker commit 1005692cf261
  22. TRABALHANDO COM IMAGENS CRIANDO IMAGEM A PARTIR DE DOCKERFILE $

    docker build --tag wfsilva/nginx:dockerfile .
 
 Obs: o ponto (.) é o path onde está o Dockerfile
  23. TRABALHANDO COM IMAGENS EXEMPLO DE DOCKERFILE FROM nginx:latest
 MANTAINER wsilva

    RUN echo "Ola" | tee /usr/ share/nginx/html/demo.html
  24. TRABALHANDO COM IMAGENS TAG DE IMAGENS $ docker tag nginx:latest

    wfsilva/nginx:latest ou $ docker tag c54a2cc56cbb wfsilva/nginx
  25. TRABALHANDO COM IMAGENS IMAGENS EM ARQUIVOS $ docker save hello-world

    --output hello-world.tar
 $ docker load --input hello-world.tar
  26. LISTANDO CONTÊINERES COMANDO MAIS UTILIZADO $ docker ps
 ou
 $

    docker ps -a
 para listar inclusive os parados
  27. MANEIRAS DE RODAR DETACHED $ docker run --detach \ debian

    sleep infinity $ docker run -d debian \ sleep infinity
  28. MANEIRAS DE RODAR INTERATIVA COM TERMINAL $ docker run \

    --interactive \ --tty \ debian \ /bin/bash
  29. MANEIRAS DE RODAR INTERATIVA COM TERMINAL $ docker run -i

    -t \
 debian /bin/bash $ docker run -it \
 debian /bin/bash
  30. PORTAS EXPONDO PORTAS $ docker run -d \
 --publish 80

    \
 nginx
 ou
 $ docker run -d \
 —publish-all \
 nginx
  31. VOLUMES USANDO UM VOLUME CRIADO $ docker run -it \


    --volume dados:/dados \
 alpine \
 /bin/sh

  32. VOLUMES MAPEANDO UMA PASTA DO HOST $ docker run -it

    \
 --volume /home/tom:/tom \
 alpine \
 /bin/sh

  33. 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
  34. EXEMPLOS PHP BUILT IN WEB SERVER $ docker run -d

    \ --publish 80:80 \ --volume "$(pwd):/app" \ --workdir /app \ php:7-cli \ php -S 0.0.0.0:80
  35. EXEMPLOS NGINX SERVER docker run -d \
 -p 80:80 \


    --volume "$(pwd):/usr/ share/nginx/html" \ nginx
  36. EXEMPLOS COMANDOS "DOCKERIZADOS" $ docker run -it \
 --volume "$(pwd):/app"

    \
 --volume "$HOME/.ssh:/ root/.ssh" \
 composer/composer \
 install
  37. EXEMPLOS APLICAÇÕES GUI ▸ Navegador Tor ▸ Eyes ▸ Spotify

    ▸ Sugestão: https://hub.docker.com/u/jess/
  38. EXEMPLOS DOCKER CRAFT docker run -d \ -p 25565:25565 \

    -v /var/run/docker.sock:/var/run/ docker.sock \ wfsilva/dockercraft
  39. TO BE CONTINUED… MAIS SOBRE DOCKER ▸ https://docs.docker.com ▸ https://telegram.me/dockerbr

    ▸ http://docker-br.herokuapp.com ▸ http://bit.ly/curso-docker