1 of 22

Docker:

O ambiente para toda a sua aplicação

2 of 22

Hello World!

  • Pedro Sereno, membro do CITi desde 2017.1
  • Desenvolvedor no CITi
  • Engenheiro de Software no CESAR
  • Aficionado por Javascript por tecnologia
    • Frontend
    • Backend
    • Machine Learning
    • DevOps
  • Se eu parar eu durmo
  • Não gosto de café

3 of 22

Você está cansado de baixar dependências para rodar seus projetos? Banco de dados, bibliotecas, etc.

4 of 22

E a compatibilidade com o sistema operacional?

5 of 22

Just be honest with me

6 of 22

E se você tivesse a possibilidade de executar a partir de uma só interface?

7 of 22

Independente do projeto, seja ele Node, Django, Rails, etc...

8 of 22

A Solução

9 of 22

Exemplo

git clone https://github.com/psg2/fai-docker

cd fai-docker

cd helloworld

docker build -t helloworld .

docker run helloworld

10 of 22

A Solução

11 of 22

Como isso funciona por trás da magia?

12 of 22

Máquinas Virtuais vs Docker

13 of 22

Conceitos

Imagem:

Uma imagem é um pacote leve, autônomo e executável que inclui tudo o que é necessário para executar um software, incluindo o código, um runtime, bibliotecas, variáveis ​​de ambiente e arquivos de configuração.

Container:

Um container é uma instância de tempo de execução de uma imagem - o que a imagem se torna na memória quando efetivamente executada. Ele é completamente isolado do ambiente do host por padrão, apenas acessando arquivos e portas do host, se configurado para fazê-lo.

14 of 22

Importante

Os containers executam aplicativos nativamente no kernel da máquina host. Eles têm melhores características de desempenho do que máquinas virtuais que só têm acesso virtual aos recursos do host através de um hypervisor. Os recipientes podem obter acesso nativo, cada um executando em um processo discreto, sem mais memória do que qualquer outro executável.

15 of 22

16 of 22

17 of 22

Composição

  • Uma aplicação não precisa estar contida em um só container.
  • Na realidade, o ideal é que os containers sigam o princípio de responsabilidade única.
  • Seu sistema no final será uma composição de containers com comunicação entre si.
  • Podendo ter múltiplas containers executando uma mesma imagem como uma forma de escalamento horizontal.

18 of 22

Exemplo - Pasta Services

19 of 22

Não é necessário que você crie todas as suas imagens, assim como tem repositórios no Github, tem imagens no Docker hub para você utilizar ou publicar.

20 of 22

Dúvidas?

21 of 22

Referências

22 of 22