Docker permite isolar e entregar aplicações de forma consistente através de plataformas diferentes. Ele encapsula todo o ambiente da aplicação em containers, eliminando problemas causados por diferenças entre ambientes de desenvolvimento e produção e facilitando o gerenciamento de recursos e a entrega contínua. Embora traga vantagens como ambientes isolados e recursos limitados, Docker também apresenta desafios como segurança e impactos de mudanças no sistema.
2. O que significa Docker?
"a person who works at a port, putting goods onto and taking
them off ships"
3. O que ele faz e qual seu propósito?
Ele provê um jeito ”fácil” de rodar, levantar e ”entregar” sua aplicação
Entregar esse valor em plataformas Windows Server, Linux e Mac.
Reduzir os problemas causados por diferenças de ambiente (Produção Vs.
Desenvolvimento)
4. ”…mas na minha máquina funciona!”
Pode isso, Bial?
Seria esse o principal motivo?
5. Vantagens Generalizadas
Elimina a assertiva ”Funciona na minha máquina”
Facilita o gerenciamento/monitoramento de recursos
Ambientes isolados | Recursos limitados
Ajuda a construir um pipeline ágil de entrega contínua
Não requer o uso de VM’s
(mas não significa que você não possa/deva usar)
6. Desvantagens gerais
Segurança pode ser severamente comprometida
Multiplos containers podem sofrer impactos relacionados a mudanças no
sistemas geral.
8. Como de fato ele funciona?
Ele trabalha com um sistema de ”contentorização” que encapsula o ambiente
inteiro de sua aplicação
9. Requisitos
Variam de acordo com o sistema e a versão de Docker que deseja utilizar
Windows
Docker for Windows (Server ou Windows pro)
Hyper-v
Docker Toolbox
VTx (Virtualization Technology)
Mac
Docker for Mac (> 2010 model) MMU e EPT
Docker Toolbox
Linux
11. Cenário 1 - Desenvolvimento
Por que usar o Docker para desenvolver?
Como usar o Docker para desenvolver?
Possíveis problemas?
Exemplos
12. Cenário 2 – Produção/Deploy
Por que usar o Docker para deploy?
Como usar o Docker para realizar suas entregas (deploys)?
Possíveis problemas?
Exemplos
13. Como começar?
Faça um mapeamento da sua aplicação
Faça um mapeamento do seu ambiente de produção
Procure ou construa um Dockerfile que replique seu ambiente de produção
Amadureça seu container
Escolha um método de deploy e o configure
Vá para a praia e tome uma cerveja