DOCKER PARA TESTERSDOCKER PARA TESTERS
UM PASSEIO FORA DA CAIXAUM PASSEIO FORA DA CAIXA
FREDERICO MOREIRAFREDERICO MOREIRA
www.fredmoreira.com
@fredaomoreira
WHO AM I?WHO AM I?
var speaker = {
name : 'Frederico Moreira',
description : [ 'QA Enginner @Minutrade',
'Organizador do Minas Testing Conference',
'Ando fissurado pelo o mundo JS',
'Entusiasta de Agile Testing',
'Trabalho com testes desde 2008...',
'Dj por Hobby',
'Lutando para crescer a comunidade de MG'
'Não vivo sem uma boa cerveja, pinga e
queijo ;)'],
blog : 'fredmoreira.com'
};
console.log(console.log('MINUTRADE''MINUTRADE'););
PENSE FORA DA CAIXAPENSE FORA DA CAIXA
Devo usar mesmo?Devo usar mesmo?
Na minha máquina funciona! :(Na minha máquina funciona! :(
O que é ?O que é ?
“O Docker é como um contaneir em um navio(sua máquina),
que pode conter vários serviços” Jonatan Ribeiro dos Santos
É uma VM com MUITOOOOO menosÉ uma VM com MUITOOOOO menos overheadoverhead......
Containers x VMsContainers x VMs
Fonte: http://www.rightscale.com/blog/cloud-management-best-practices/docker-vs-vms-
combining-both-cloud-portability-nirvana
Mas eu consigo usar noMas eu consigo usar no
Windows ?Windows ?
Windows / OS XWindows / OS X
Fonte:Fonte: http://docs.docker.com/engine/installation/windows/
http://docs.docker.com/engine/installation/mac/
Docker ToolboxDocker Toolbox
Fonte:Fonte: https://www.docker.com/docker-toolbox
LINUXLINUX
Fonte:Fonte: http://docs.docker.com/engine/installation/windows/
http://pt.slideshare.net/stefanteixeira/tdc-2015-poa-o-fantstico-
mundo-de-docker
Principais ConceitosPrincipais Conceitos
➔ Imagens
➔ Containers
➔ Dockerfiles
DockerHubDockerHub
Image - LayersImage - Layers
Dockerfiles – Baby StepsDockerfiles – Baby Steps
Dockerfiles – InstruçõesDockerfiles – Instruções
BásicasBásicas
● FROM
● RUN
● ADD / COPY
● EXPOSE
● ENV
● VOLUME
● CMD / ENTRYPOINT
Dockerfiles - ExemploDockerfiles - Exemplo
Fonte:Fonte: http://www.slideshare.net/RodrigoEmereciano1/o-
que-docker
Docker – ComandosDocker – Comandos
Construir uma imagem
docker build -t <nome_imagem> <path_dockerfile>docker build -t <nome_imagem> <path_dockerfile>
Docker build -t api:2.0.0 .Docker build -t api:2.0.0 .
Rodar um ContainerRodar um Container
docker run -d -pdocker run -d -p
<porta_host>:<porta_container> --name<porta_host>:<porta_container> --name
<nome_container> <nome_imagem><nome_container> <nome_imagem>
docker run -d -p 5000:5000 --namedocker run -d -p 5000:5000 --name
api2.0.0 api:2.0.0api2.0.0 api:2.0.0
Consultar logs de um containerConsultar logs de um container
docker logs <nome_container>docker logs <nome_container>
docker logs api2.0.0docker logs api2.0.0
docker logs -f api2.0.0docker logs -f api2.0.0
Imagens / ContainersImagens / Containers
docker imagesdocker images
docker psdocker ps
docker ps -adocker ps -a
docker rm <nome_container>docker rm <nome_container>
docker rmi <nome_imagem>docker rmi <nome_imagem>
Iniciar uma sessão bash emIniciar uma sessão bash em
um containerum container
docker exec -it <nome_container> bashdocker exec -it <nome_container> bash
*Container precisar estar rodando**Container precisar estar rodando*
Repositório GitHubRepositório GitHub
https://github.com/fredmoreira/docker-https://github.com/fredmoreira/docker-
gtsmggtsmg
OBRIGADO!!!!OBRIGADO!!!!

Docker para testers - Um passeio fora da caixa