1. 1
Docker e suas Tecnologias
Cesar A. Nogueira
Desenvolvedor de Software
Instituto Eldorado
@cesarnogcps
3 de Junho de 2015
2. 22
➔ Definindo o Docker
➔ Caso de uso real em projeto Motorola:
Docker no projeto DogFood Survey
➔ Hands On
◆ Rodando seu primeiro container Docker.
Agenda
3. 33
NÃO é uma máquina virtual
NÃO é um substituto a qualquer Gerenciador de Configuração (como Chef, Puppet,
SaltStack) que define estados de configuração da TI.
NÃO é um PaaS (Platform as a Service)
NÃO consegue sozinho linkar-se por servidores separados ou Virtual Machines
O que não é Docker?
4. 44
O que é Docker então?Site oficial: https://www.docker.com/
7. 77
Developers:
Construa uma vez… rode em qualquer lugar
13.000+ apps disponíveis no Docker Hub pra começar
Automatize builds pipelines
Compartilhe artefatos com outros devs
através de repositórios públicos ou privados.
INFRASTRUCTURE:
➔ Configure uma vez… rode qualquer coisa
➔ Reduza a falácia do “mas funcionou na minha máquina”
➔ “Dockerizando” a plataforma da aplicação e suas dependências,
diferenças em distribuições de OS são removidas
Por que me importar com Docker?
8. 88
Docker é uma ferramenta básica, como git ou java,
que você deve começar a incorporar em seu desenvolvimento diário.
Use como um sistema de controle de versão para todo o sistema operacional de seu app
Use quando quiser distribuir/colaborar no sistema de sua aplicação com um time de desenvolvedores
Use para rodar seu código no seu próprio laptop com o mesmo ambiente que você teria em seu servidor
(tente a ferramenta de construção de imagens do Docker)
Use quando sua aplicação precisar passar por várias fases de desenvolvimento
(dev/test/qa/prod, tente Drone ou Shippable, ambos fazem Docker CI/CD)
Quando usar Docker?
16. 1616
Como funciona?As principais partes de seu sistema de deployment são:
1. Daemon: Gerencia os containers LXC em um host
2. Client: Usado para interagir com o Docker daemon
3. Index: Este é um repositório de imagens do Docker
As ferramentas acima so usadas para criar aplicações que consistem de:
1. Containers: Diretórios contendo tudo que é necessário para rodar uma aplicação
2. Files: Scripts para automatizar a construção de aplicações Docker.
3. Images: Snapshots de aplicações Docker ou a base de Sistemas Operacionais
18. 1818
Crie um grupo chamado docker e adicione seu usuário nele:
1. Logue no Ubuntu ou no seu sistema operacional com um usuário que tenha privilégios de sudo
2. Crie o grupo docker e adicione seu usário com o seguinte comando:
sudo usermod -aG docker ubuntu
1. Dê logoff e logue novamente.
2. Isto irá confirmar que seu usuário está rodando com as permissões corretas.
3. Verifique se tudo está funcionando com o hello-world já provido no docker:
Instalação...
Hands On
21. 2121
Comandos mais usados:
docker attach Attach to a running container
build Build a container from a Dockerfile
commit Create a new image from a container's changes
diff Inspect changes on a container's filesystem
export Stream the contents of a container as a tar archive
history Show the history of an image
images List images
import
Create a new filesystem image from the contents of a tarball
info Display system-wide information
insert Insert a file in an image
inspect Return low-level information on a container
22. 2222
kill Mata um container ativo
login Registra ou loga com o Docker registry server
logs <nome do container>
Recupera os logs de um container
port <nome do container>
Mostra a porta pública NAT para a PRIVATE_PORT
ps Lista os containers ativos
pull Pull an image or a repository from the Docker registry server
push Push an image or a repository to the Docker registry server
restart Reinicia um container
rm Remove um container
rmi Remove uma imagem
run Roda um comando em um novo container
start Inicia um container que está parado
stop Para um container que está rodando
tag Tageia uma imagem de container em um repositório
version Mostra informações sobre a versão do Docker instalada
wait Block until a container stops, then print its exit code
docke
r
"A container is like Vegas, what happens in a container stays in that container."
Docker brings security to applications running in a shared environment, but containers by themselves are not an alternative to taking proper security measures.
É uma tendência, tem bastante empresa falando. Citar case no Brasil da Globo.com