tdc 2015 poa - o fantástico mundo de docker
TRANSCRIPT
![Page 1: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/1.jpg)
O FANTÁSTICO MUNDO DE DOCKER
Stefan Teixeira @stefan_teixeira
[email protected] stefanteixeira.com.br
stefanteixeira.com
![Page 2: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/2.jpg)
About meStefan Teixeira
• QA Engineer @ M4U • Entusiasta de Automação de Testes, Agile Testing e
DevOps • Blogs técnicos: stefanteixeira.com.br (pt-br) /
stefanteixeira.com (en)
Contatos: • E-mail: [email protected] • Twitter: twitter.com/stefan_teixeira • Facebook: facebook.com/stefan.teixeira • LinkedIn: linkedin.com/in/stefanteixeira • GitHub: github.com/stefanteixeira • SlideShare: slideshare.net/stefanteixeira
![Page 3: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/3.jpg)
![Page 4: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/4.jpg)
Descobrindo containers
![Page 6: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/6.jpg)
• Reprodutibilidade
Por que?
![Page 7: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/7.jpg)
• Reprodutibilidade
• Escalabilidade
Por que?
![Page 8: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/8.jpg)
• Reprodutibilidade
• Escalabilidade
• MUITO rápido :)
Por que?
![Page 9: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/9.jpg)
• Oracle Solaris Zones - 2004
História dos Containers
![Page 10: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/10.jpg)
• Oracle Solaris Zones - 2004
• LinuX Containers (LXC) - 2008
História dos Containers
![Page 11: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/11.jpg)
• Oracle Solaris Zones - 2004
• LinuX Containers (LXC) - 2008
• Google’s lmctfy (Let Me Contain That For You) - 2013
História dos Containers
![Page 12: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/12.jpg)
• Oracle Solaris Zones - 2004
• LinuX Containers (LXC) - 2008
• Google’s lmctfy (Let Me Contain That For You) - 2013
• Docker - 2013
História dos Containers
![Page 13: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/13.jpg)
![Page 14: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/14.jpg)
Open Container Initiative
http://opencontainers.org/ http://blog.docker.com/2015/06/open-container-project-foundation/
![Page 15: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/15.jpg)
sudo apt-get install baidu ?
Fonte: http://blog.docker.com/2013/12/baidu-using-docker-for-its-paas/
![Page 16: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/16.jpg)
• Imagens
Conceitos principais
![Page 17: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/17.jpg)
• Imagens
• Containers
Conceitos principais
![Page 18: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/18.jpg)
• Imagens
• Containers
• Dockerfiles
Conceitos principais
![Page 19: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/19.jpg)
Ecossistema
• Compose
![Page 20: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/20.jpg)
Ecossistema
• Compose
• Swarm
![Page 21: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/21.jpg)
Ecossistema
• Compose
• Swarm
• Machine
![Page 22: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/22.jpg)
Ecossistema
• Compose
• Swarm
• Machine
• Kitematic
![Page 24: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/24.jpg)
Arquitetura: Visão Geral
Fonte: https://docs.docker.com/introduction/understanding-docker/
![Page 25: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/25.jpg)
Arquitetura: Execdriver
Fonte: https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/
![Page 26: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/26.jpg)
Host x Client: Linux
![Page 27: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/27.jpg)
Host x Client: Windows / OS X
![Page 28: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/28.jpg)
Host x Client: Windows / OS X
Docker Toolbox https://www.docker.com/toolbox
![Page 30: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/30.jpg)
Image Layers
![Page 31: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/31.jpg)
Dockerfiles
![Page 32: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/32.jpg)
Dockerfiles: Instruções
• FROM
![Page 33: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/33.jpg)
• FROM • RUN
Dockerfiles: Instruções
![Page 34: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/34.jpg)
• FROM • RUN • ADD / COPY
Dockerfiles: Instruções
![Page 35: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/35.jpg)
• FROM • RUN • ADD / COPY • EXPOSE
Dockerfiles: Instruções
![Page 36: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/36.jpg)
• FROM • RUN • ADD / COPY • EXPOSE • ENV
Dockerfiles: Instruções
![Page 37: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/37.jpg)
• FROM • RUN • ADD / COPY • EXPOSE • ENV • VOLUME
Dockerfiles: Instruções
![Page 38: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/38.jpg)
• FROM • RUN • ADD / COPY • EXPOSE • ENV • VOLUME • CMD / ENTRYPOINT
Dockerfiles: Instruções
![Page 39: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/39.jpg)
Dockerfiles: Exemplo
![Page 40: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/40.jpg)
Dockerfiles: Boas Práticas
• 1 processo por container
![Page 41: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/41.jpg)
Dockerfiles: Boas Práticas
• 1 processo por container • Minimize o número de camadas
![Page 42: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/42.jpg)
Dockerfiles: Boas Práticas
• 1 processo por container • Minimize o número de camadas • Evite instalar pacotes
desnecessários
![Page 43: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/43.jpg)
Dockerfiles: Boas Práticas
• 1 processo por container • Minimize o número de camadas • Evite instalar pacotes
desnecessários • Entenda como o cache do Docker
funciona (veja http://thenewstack.io/understanding-the-docker-cache-for-faster-builds/ e https://
docs.docker.com/articles/dockerfile_best-practices/)
![Page 44: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/44.jpg)
Comandos Essenciais (CLI)
![Page 45: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/45.jpg)
Comandos essenciais (CLI)
• Buildar uma imagem
docker build -t <nome_imagem> <path_dockerfile>
Outros parâmetros úteis: • --nocache
![Page 46: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/46.jpg)
Comandos essenciais (CLI)
• Rodar um container
docker run -d -p <porta_host>:<porta_container> --name <nome_container> <nome_imagem>
Outros parâmetros úteis: • --link <nome_container>:<alias> • --add-host <nome_host>:<IP>
![Page 47: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/47.jpg)
Comandos essenciais (CLI)
• Consultar logs de um container
docker logs <nome_container>
PS: para acompanhar os logs em tempo real, use o parâmetro -f
![Page 48: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/48.jpg)
Comandos essenciais (CLI)
• Iniciar sessão bash em um container
docker exec -it <nome_container> bash
PS: o container deve estar rodando!
![Page 49: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/49.jpg)
Comandos essenciais (CLI)
• Ver todas as imagens do host
docker images
• Ver todos os containers
docker ps -a
![Page 50: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/50.jpg)
Comandos essenciais (CLI)
• Remover um container
docker rm -f <nome_container>
• Remover uma imagem
docker rmi -f <nome_imagem>
PS: antes de remover uma imagem, remova todos os containers associados a ela!
![Page 51: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/51.jpg)
Hands-on
![Page 52: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/52.jpg)
Hands-on
• https://github.com/stefanteixeira/todoapp-flask
![Page 53: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/53.jpg)
Livros recomendados
![Page 54: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/54.jpg)
Outros projetos interessantes
![Page 55: TDC 2015 POA - O Fantástico Mundo de Docker](https://reader031.vdocuments.net/reader031/viewer/2022030316/58729e1d1a28ab07208b5251/html5/thumbnails/55.jpg)
Obrigado!
Stefan Teixeira @stefan_teixeira
[email protected] stefanteixeira.com.br
stefanteixeira.com