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

Docker do básico a orquestração (PHPeste2016)

Docker do básico a orquestração (PHPeste2016)

Palestra ministrada no PHPeste em Salvador-BA em 09/10/2016. Abordamos o que são linux containers, o que é Docker, comparações com máquinas virtuais, principais comandos, GUI, Compose e Swarm

Wellington F. Silva

October 09, 2016
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. DO BÁSICO A ORQUESTRAÇÃO
    DOCKER

    View Slide

  2. View Slide

  3. TEXT
    WELLINGTON F. SILVA
    ▸ Técnico Telecom,
    ▸ Programador,
    ▸ Devops
    ▸ Instrutor
    ▸ Escritor
    ▸ Pai…

    View Slide

  4. TEXT
    AGENDA
    ▸ O que é Docker
    ▸ Breve história
    ▸ Como funciona
    ▸ Principais comandos
    ▸ Exemplos
    ▸ Estudo sobre Docker em Produção

    View Slide

  5. O QUE É DOCKER?

    View Slide

  6. View Slide

  7. View Slide

  8. FERRAMENTA PARA
    VIRTUALIZAÇÃO NO NÍVEL
    DO SISTEMAS OPERACIONAL

    View Slide

  9. View Slide

  10. O QUE É DOCKER?
    ▸ Sistemas de Containers Linux

    View Slide

  11. O QUE É DOCKER?
    ▸ Sistemas de Containers Linux
    ▸ Leve e rápido

    View Slide

  12. O QUE É DOCKER?
    ▸ Sistemas de Containers Linux
    ▸ Leve e rápido
    ▸ Open Source

    View Slide

  13. O QUE É DOCKER?
    ▸ Sistemas de Containers Linux
    ▸ Leve e rápido
    ▸ Open Source
    ▸ Diversas ferramentas de cluster e orquestração

    View Slide

  14. O QUE É DOCKER?
    ▸ Sistemas de Containers Linux
    ▸ Leve e rápido
    ▸ Open Source
    ▸ Diversas ferramentas de cluster e orquestração
    ▸ Facilita micro serviços

    View Slide

  15. O QUE É DOCKER?
    ▸ Sistemas de Containers Linux
    ▸ Leve e rápido
    ▸ Open Source
    ▸ Diversas ferramentas de cluster e orquestração
    ▸ Facilita micro serviços
    ▸ Facilita emprego do 12 factor

    View Slide

  16. O QUE É DOCKER?
    ▸ Sistemas de Containers Linux
    ▸ Leve e rápido
    ▸ Open Source
    ▸ Diversas ferramentas de cluster e orquestração
    ▸ Facilita micro serviços
    ▸ Facilita emprego do 12 factor
    ▸ Melhora a distribuição de recursos

    View Slide

  17. HISTÓRIA

    View Slide

  18. TEXT
    HISTÓRIA
    ▸ 21/03/2013 1ª Demo

    View Slide

  19. TEXT
    HISTÓRIA
    ▸ 21/03/2013 1ª Demo
    ▸ Opensource(Apache License 2.0)

    View Slide

  20. TEXT
    HISTÓRIA
    ▸ 21/03/2013 1ª Demo
    ▸ Opensource(Apache License 2.0)
    ▸ Base para dotCloud

    View Slide

  21. TEXT
    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

    View Slide

  22. TEXT
    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

    View Slide

  23. TEXT
    HISTÓRIA
    ▸ 23/07/2014 Compra da Orchard
    (FIG)

    View Slide

  24. TEXT
    HISTÓRIA
    ▸ 23/07/2014 Compra da Orchard
    (FIG)
    ▸ 16/09/2014 3º aporte US$ 40 mi

    View Slide

  25. TEXT
    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

    View Slide

  26. TEXT
    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

    View Slide

  27. TEXT
    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

    View Slide

  28. COMO FUNCIONA?

    View Slide

  29. PROCESSOS
    +
    KERNEL NAMESPACES
    +
    CGROUPS

    View Slide

  30. PROCESSOS
    PID=1

    View Slide

  31. KERNEL NAMESPACES
    (O QUE O PROCESSO PODE VER)

    View Slide

  32. CGROUPS
    (O QUE O PROCESSO PODE USAR)

    View Slide

  33. VM X CONTAINERS

    View Slide

  34. View Slide

  35. ARQUITETURA

    View Slide

  36. View Slide

  37. WINDOWS VS
    OSX VS
    LINUX

    View Slide

  38. View Slide

  39. Windows 2016

    View Slide

  40. IMAGENS

    View Slide

  41. View Slide

  42. View Slide

  43. View Slide

  44. View Slide

  45. PRINCIPAIS COMANDOS

    View Slide

  46. PRINCIPAIS COMANDOS
    CRIAR CONTAINERS
    docker run [opções] imagem
    [comando|parâmetro]

    View Slide

  47. PRINCIPAIS COMANDOS
    LISTAR CONTAINERS
    docker ps [opções]

    View Slide

  48. PRINCIPAIS COMANDOS
    LISTAR IMAGENS
    docker images [opções]

    View Slide

  49. PRINCIPAIS COMANDOS
    REMOVER CONTAINERS
    docker rm [opções] id|nome

    View Slide

  50. PRINCIPAIS COMANDOS
    REMOVER IMAGENS
    docker rmi [opções] id|tag

    View Slide

  51. PRINCIPAIS COMANDOS
    ADICIONAR UM PROCESSO
    docker exec [opções] id|nome
    processo

    View Slide

  52. PRINCIPAIS COMANDOS
    USANDO VOLUMES
    docker volume create [opções] [nome]
    docker run --volume nome:/path …
    docker run --volume "/host:/container"

    View Slide

  53. PRINCIPAIS COMANDOS
    USANDO PORTAS
    docker run --publish
    interface:porta-host:porta-
    container …
    docker run --publish-all …

    View Slide

  54. PRINCIPAIS COMANDOS
    TRABALHANDO COM IMAGENS
    docker commit [opções] id|container
    docker pull imagem
    docker push imagem
    docker tag [img-original|id] nova-imagem

    View Slide

  55. EXEMPLOS
    HORA DA TELA AZUL

    View Slide

  56. MANEIRAS DE RODAR
    DETACHED
    docker run --detach debian sleep
    infinity
    docker run -d debian sleep infinity

    View Slide

  57. MANEIRAS DE RODAR
    INTERATIVA COM TERMINAL
    docker run --interactive --tty
    debian /bin/bash
    docker run -i -t debian /bin/bash

    View Slide

  58. MANEIRAS DE RODAR
    INTERATIVA (UNIX PIPELINE)
    echo "PHPeste" | docker run -i
    debian cat

    View Slide

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

    View Slide

  60. EXEMPLOS
    NGINX SERVER
    docker run -d \
    -p 80:80 \
    --volume "$(pwd):/usr/share/nginx/
    html" \
    nginx

    View Slide

  61. EXEMPLOS
    COMANDOS "DOCKERIZADOS"
    docker run -it \
    --volume "$(pwd):/app" \
    --volume "$HOME/.ssh:/root/.ssh" \
    composer/composer \
    install

    View Slide

  62. EXEMPLOS
    DOCKER COMPOSE
    Demo baseada no repo:
    https://github.com/wsilva/demo-
    phpsp-ima

    View Slide

  63. EXEMPLOS
    APLICAÇÕES GUI
    ▸ Navegador Tor
    ▸ Eyes
    ▸ Spotify
    ▸ Sugestão: https://hub.docker.com/u/jess/

    View Slide

  64. EXEMPLOS
    DOCKER CRAFT
    docker run -d \
    -p 25565:25565 \
    -v /var/run/docker.sock:/var/run/
    docker.sock \
    wfsilva/dockercraft

    View Slide

  65. EXEMPLOS
    DOCKER SWARM
    docker swarm init
    docker swarm join --token

    View Slide

  66. ESTUDO DATADOG
    HTTPS://WWW.DATADOGHQ.COM/
    DOCKER-ADOPTION/

    View Slide

  67. AUMENTO DE 30% NO USO
    ENTRE MAIO DE 2015 E MAIO
    DE 2016
    ESTUDO DATADOG

    View Slide

  68. EM MAIORES EMPRESAS
    (+500 HOSTS) A ADOÇÃO É
    MAIOR
    ESTUDO DATADOG

    View Slide

  69. 2/3 DOS CLIENTES QUE
    TESTARAM ADOTARAM
    ESTUDO DATADOG

    View Slide

  70. DOS CLIENTES QUE ADOTARAM
    A QUANTIDADE DE
    CONTAINERS QUINTUPLICOU
    ESTUDO DATADOG

    View Slide

  71. EM MÉDIA 5 CONTAINER POR
    HOST
    ESTUDO DATADOG

    View Slide

  72. VMS SÃO 6 X MAIS LONGEVAS
    QUE OS CONTAINERS
    ESTUDO DATADOG

    View Slide

  73. IMGS MAIS USADAS:
    REGISTRY, NGINX, REDIS,
    ELASTICSEARCH, MYSQL, …
    ESTUDO DATADOG

    View Slide