Nesta palestra aprenderemos o que é Docker, conteiner, imagens e quais as principais ferramentas do Docker usadas para implantar e transportar contêineres de aplicação entre vários tipos de ambientes.
2. Aécio dos Santos Pires
http://aeciopires.com
Administrador de Sistemas DevOp na
Especialista em Segurança da Informação pela iDEZ
Um dos autores do livro
Tecnólogo em Redes de Computadores
pelo
4. Mudança de Paradigma
● Cultura DevOps;
● Integração contínua;
● Alterações mais frequentes e mais rápidas em
produção;
● Micro-serviços;
● Ambientes “elásticos”;
● Maior complexidade na análise de logs, no
monitoramento e na segurança dos hosts;
5. Docker
● “É uma plataforma de contêiner, com o código
fonte aberto, que automatiza a implantação de
aplicativos de software.” Site Oficial [1]
● Não é uma tecnologia de virtualização.
● Não é um gerente de configuração.
● Não é um kernel separado.
● Não é um hypervisor.
6. Docker
●
Foi publicado em 13 de Março de 2013.
●
Está em constante desenvolvimento.
●
Desenvolvido inicialmente pela dotCloud, atual Docker Inc.
● Hoje é mantido pela Docker Inc. + comunidade.
●
Tem suporte a Linux, Windows, Mac OS, entre outros.
●
Licença Apache 2.0
●
Tem as versões Enterprise (EE) e Comunity (CE)
●
No Linux, o diretório de trabalho fica em: /var/lib/docker/
●
Site oficial: www.docker.com
●
Documentação: docs.docker.com
8. Contêineres
● “São um encapsulamento para um aplicativo com suas dependências.”
Using Docker de Adrian Mouat (O’Reilly) [2] [3]
● Ocupam menos espaço do que as VMs.
● São portáveis.
● São ligados quase instantaneamente.
● São adequados para execução de microserviços e pouco
recomendados para sistemas monolíticos.
● Vários contêineres podem ser executados na mesma máquina.
● Compartilham o kernel do SO.
● Cada conteiner é executado como um processo isolado no espaço do
usuário.
● Conteiner é um conceito antigo.
10. Imagens
● Funciona como um template para criação de novos
contêineres.
● A partir de uma imagem, é possível iniciar novos
contêineres e fazer alterações neles.
● São formadas a partir da compilação de uma imagem
base.
● São compostas por múltiplas camadas, onde cada uma é
um sistema de arquivos somente leitura.
● Podem ser geradas a partir de um conteiner em execução
ou a partir da compilação de um Dockerfile.
13. Docker Host
● É o host no qual são executados os conteiners
e onde são processados os comandos
enviados pelo docker client.
● O docker host pode conter o docker daemon e
o client ou somente o docker daemon.
16. Responsabilidades diferentes
DesenvolvimentoDesenvolvimento ProduçãoProdução
Metologias Ágeis Disponibilidade
Integração Contínua Persistência de dados (storage)
Correção de bugs Segurança
Ambiente para testes Backup
Versionamento de código Configurações específicas
Sprints Logs
Processos de desenvolvimento Monitoramento
Geração de código Alertas
Merges Métricas
Coleta de requisitos Escalabilidade
Reuniões e mais reuniões Rollback
Orquestração
Deploy de aplicações
Documentação
Suporte ao usuário
20. Docker Hub e Docker Registry
Docker Hub (hub.docker.com):
● É um serviço remoto e proprietário de hospedagem de imagens Docker.
● É possível criar contas gratuitas para criação de repositórios de
imagens públicas (gratuito) e privadas (pago US$).
● Possui interface web para gerenciamento de usuários, repositórios,
imagens e builds automáticos.
Docker Registry (docs.docker.com/registry):
● É um serviço open source alternativo ao Docker Hub para hospedagem
gratuíta de imagens em um servidor local.
● Funciona de forma semelhante ao Docker Hub.
● Não possui interface web nativa.
22. Ferramentas de Apoio à
Operação em Produção
● Interfaces web ao Docker Registry…
– http://port.us.org
– http://vmware.github.io/harbor
– http://www.projectatomic.io/registry
23. Ferramentas de Apoio à
Operação em Produção
● Orquestração e escalabilidade…
– docs.docker.com/engine/swarm
24. Docker Swarm
● Solução de cluster Docker, que agrupa vários hosts
Docker e possibilita a orquestração dos mesmos e de
contêineres. MOUAT, Adrian
● Se encarrega de selecionar um host apropriado no
qual o conteiner será executado.
● Pode ser formado por Docker Hosts de VMs e/ou
físicos ou os dois simultaneamente.
● docs.docker.com/engine/swarm
25. Ferramentas de Apoio à
Operação em Produção
● Gerenciamento de conteiners, volumes, Docker
Swarm, rede do Docker…
– http://rancher.com
– https://portainer.io
– https://meros.io
– https://shipyard-project.com
26. ● “É uma ferramenta web e de código fonte
aberto que permite gerenciar vários Docker
Hosts ou vários clusters de Docker Swarm.” [4]
● Portainer:
portainer.io
github.com/portainer/portainer
https://portainer.io/overview.html#demo
37. GOMES, Rafael - Docker para desenvolvedores
https://leanpub.com/dockerparadesenvolvedores
MOUAT, Adrian – Usando Docker
https://www.novatec.com.br/livros/usando-docker
PIRES, Aécio – Primeiros passos com Docker
http://blog.aeciopires.com/primeiros-passos-com-docker
Referências
38. Então, faça um curso comigo. :-)
Mais informações:
http://blog.aeciopires.com/curso-docker
Quer aprender mais sobre Docker?