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

Introdução ao Docker

Introdução ao Docker

Docker mudou como criamos sistemas. Motivos para sua adoção são vários, mas segue alguns bons exemplos:

Aplicação auto contida
Ambientes iguais
Padronização com melhores práticas
Comunidade
Com poucos comandos podemos ter nossa aplicação online na maioria das grandes cloud providers, como: AWS, Google Cloud, Digital Ocean, OpenStack entre outros. Como temos uma aplicação auto contida, seu deploy fica simplificado.

Durante a palestra, vamos utilizar os comandos básicos de gerenciamento de Docke

Rafael Dutra

April 29, 2017
Tweet

More Decks by Rafael Dutra

Other Decks in Programming

Transcript

  1. Docker - Breve história • Release inicial em 13/3/2013 •

    Iniciado como projeto interno • Criado por Solomon Hykes • Escrito em Go (Google) • Open Source - http://docker.com
  2. Docker - O que é? • Tecnologia de código aberto

    • Crie, execute, teste e implante aplicações. • Empacote software em uma unidade padronizada para o desenvolvimento. • Utilizou LXC inicialmente, migrado para runC (libcontainer). • AUFS como filesystem (Another Union File System) • Container não é VM!
  3. Docker - Comunidade Github - Open Source • 180k linhas

    de código • 31k commits • 185 releases • 1.6k contribuidores
  4. Docker - Alguns dados - Docker Con 2016 • 460K

    aplicações em Docker, um crescimento de 3100% em 2 anos. • 4 bilhões de imagens baixadas. • 530% em contribuição com o código.
  5. Docker - Alguns dados - Datadog - Abril/2017 • 10%

    dos hosts utilizam Docker. • 30% de aumento em adoção em 1 ano. • 5x o aumento em deploys em 10 meses entre usuários. https://www.datadoghq.com/docker-adoption
  6. Docker - Alguns dados - New Relic 2016 • 192%

    de aumento em containers por empresa. • Tempo de vida de container caiu de 13 horas para 9.5 horas. ◦ Aumento de deploys. • Frameworks em PHP, Ruby e Node são as principais tecnologias.
  7. Docker - Por que utilizar? • Evitamos a frase -

    “mas funciona na minha máquina”. • Aplicação toda contida em uma imagem. • Infraestrutura definida como código. • Comunidade.
  8. Docker - Terminologia • Images - É a “planta” de

    nossa aplicação, que forma a base para os containers. • Containers - Implementação dinâmica de uma imagem. Múltiplos containers podem vir de uma única imagem. • Docker Daemon - Serviço em background que roda no host e que gerencia a construção, execução e distribuição.
  9. Docker - Terminologia • Docker Client - Linha de comando

    que permite que o usuário interaja com o daemon. • Docker Hub - O registry (repositório) para Docker Images.
  10. Docker - Como instalar ? CE - Community Edition 1.

    sudo apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common 2. curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - 3. sudo apt-get update 4. apt-get -y install docker-ce
  11. Docker - Como iniciar, qual o primeiro comando? • Que

    tal iniciar pelo começo? ◦ docker version ◦ docker info
  12. Docker - Evoluindo... • Como listar containers? docker container list

    • Como parar? docker stop • Como reiniciar? docker restart • Como remover? docker rm
  13. Docker - Entrando num container “Quero criar minha própria imagem,

    pois nenhuma imagem que procurei atendeu meus requisitos.” Podemos usar o comando docker attach para trabalhar no container.
  14. Docker - Okay, tudo pronto, e agora? Agora temos que

    “empacotar” o seu container em uma imagem. Usamos então o comando docker commit para gerar a imagem.
  15. Docker - Terminologia Dockerfile é: • Simples arquivo texto onde

    contém uma lista de comandos. • É uma forma simples de automatizar a criação de imagens. • Basicamente são comandos em Linux, então não é necessário aprender uma nova sintaxe.
  16. Docker - Nginx # imagem base FROM nginx # copiando

    arquivo para um diretório específico COPY index.html /usr/share/nginx/html # qual porta queremos que seja publicada EXPOSE 8000 # rodando aplicação CMD ["nginx", "-g", "daemon off;"]
  17. Docker - PHP CLI # imagem base FROM php:7.1-cli #

    comando que irá rodar ao iniciar o container CMD ["php", "--version"]
  18. Docker - Volumes Queremos programar localmente, ou temos dados para

    enviar para dentro do container. docker run -it -v /path/to/file:/file tchelinux-app command /file