Um linux container engine
@HudsonBrendon
hudsonbrendon.com
github.com/hudsonbrendon
twitter.com/hudsonbrendon
contato.hudsonbrendon@gmail.com
Agenda
● Conhecendo o docker
● Criando imagens, contêineres, etc
● Dockerfile
● Dockerhub
● Instalando
● Demos
Contêineres, contêineres e contêineres
O problema
Vms x Contêineres
Camadas: Imagens e contêineres
Camadas: Imagens e contêineres
Camadas: Imagens e contêineres
Camadas: Imagens e contêineres
Imagens
● Template read only;
● Contém os arquivos que vão executar a aplicação.
Normalmente bibliotecas, frameworks, arqu...
Contêineres
● São iniciados a partir de imagens e rodam sua aplicação (docker
run);
● Podem ser commitados para gerar imag...
DEMO
LISTANDO IMAGENS
RODANDO UM CONTÊINER
LISTANDO, PARANDO,
REINICIANDO CONTÊINERES
Por que é importante para
desenvolvedores?
● Fácil de começar a desenvolver;
● Você pode usar Window, Linux ou Mac
● Se fu...
Por que é importante para sysadmins?
Fácil de colocar em produção;
É trivial montar ambientes padronizados para dev, qa e
...
Open source
● Disponível em github.com/docker;
● Apache2 (permissiva, você detem uma licença para
fazer oque quiser);
● Es...
Instalando
● No linux a instalação é feita apenas com uma
única linha que você roda no terminal;
● Por causa das dependênc...
Quem usa?
Dockerfile
● É o “fonte” de uma imagem;
● É uma maneira de gerar imagens, e é a melhor
maneira;
● Fácil de saber o que há ...
Um Dockerfile
FROM ubuntu:14.04
MAINTAINER Hudson Brendon <contato.hudsonbrendon@gmal.com>
# pip requirements
ADD /require...
DEMO
BAIXANDO UMA IMAGEM
CRIANDO UMA IMAGEM
EMPURRANDO UMA IMAGEM
PARA O HUB
Mais informações
● Docker: docker.com
● Tutorial: docker.com/tryit
● Boot2Docker: boot2docker.io
Dúvidas?
Hudson Brendon
contato.hudsonbrendon@gmail.com
@hudsonbrendon
Docker um Linux container engine - Hudson Brendon
Docker um Linux container engine - Hudson Brendon
Docker um Linux container engine - Hudson Brendon
Próximos SlideShares
Carregando em…5
×

Docker um Linux container engine - Hudson Brendon

441 visualizações

Publicada em

A palestra aborda a utilização do docker juntamente com o docker-compose, que se mostra uma excelente ferramenta na criação de ambientes complexos de desenvolvimento e deploy, utilizando toda a hegemonia do docker para prover ambientes de forma fácil e eficiente. Aborda os conceitos básicos, como utilizar no dia a dia de forma efetica, trabalhando os conceitos de Dockerfile, imagens, conteineres, Dockerhub e seus principais comandos.docker: https://docs.docker.com/docker-compose

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
441
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Docker um Linux container engine - Hudson Brendon

  1. 1. Um linux container engine
  2. 2. @HudsonBrendon hudsonbrendon.com github.com/hudsonbrendon twitter.com/hudsonbrendon contato.hudsonbrendon@gmail.com
  3. 3. Agenda ● Conhecendo o docker ● Criando imagens, contêineres, etc ● Dockerfile ● Dockerhub ● Instalando ● Demos
  4. 4. Contêineres, contêineres e contêineres
  5. 5. O problema
  6. 6. Vms x Contêineres
  7. 7. Camadas: Imagens e contêineres
  8. 8. Camadas: Imagens e contêineres
  9. 9. Camadas: Imagens e contêineres
  10. 10. Camadas: Imagens e contêineres
  11. 11. Imagens ● Template read only; ● Contém os arquivos que vão executar a aplicação. Normalmente bibliotecas, frameworks, arquivos do SO; ● Há imagens de SO: Ubuntu, Debian, CentOS, etc; ● Há imagens de ambientes: Python, Ruby, Python, etc; ● Imagens podem ser raiz ou apontar para um ‘pai’; ● Podem ser criadas por um Dockerfile ou por um commit; ● Formato: usuário/nomedaimagem, e imagens oficiais não tem nome do usuário.
  12. 12. Contêineres ● São iniciados a partir de imagens e rodam sua aplicação (docker run); ● Podem ser commitados para gerar imagens (docker commit); ● Se comunicam via rede e o ambiente externo e/ou com outros contêineres; ● Tem sua execução controlada pelo host (CPU, memória, etc); ● Podem parar (docker stop), reiniciar (docker restart, docker start), ser apagado (docker rm), pausar (docker pause) e continuar (docker unpause); ● Tem nome; ● Podem ser descartados ou persistentes; ● Normalmente rodam somente um processo.
  13. 13. DEMO LISTANDO IMAGENS RODANDO UM CONTÊINER LISTANDO, PARANDO, REINICIANDO CONTÊINERES
  14. 14. Por que é importante para desenvolvedores? ● Fácil de começar a desenvolver; ● Você pode usar Window, Linux ou Mac ● Se funciona na sua máquina: ○ vai funcionar na máquina de todos; ○ vai passar no build e vai funcionar em produção; ● Fácil de montar o ambiente; ● Fácil de estruturar a arquitetura; ● Sem conflito entre diferentes projetos; ● Rápido, Muito, muito, muito rápido.
  15. 15. Por que é importante para sysadmins? Fácil de colocar em produção; É trivial montar ambientes padronizados para dev, qa e produção; Se passou na build vai funcionar em produção; É fácil escalar; É fácil dar prioridade para uma aplicação sobre outra; Permite aumentar a densidade de uma máquina.
  16. 16. Open source ● Disponível em github.com/docker; ● Apache2 (permissiva, você detem uma licença para fazer oque quiser); ● Escrito em Go; ● Monetização atravéz de serviços adicionais opcionais e que você pode contruir por conta própria se quiser; ● 900+ contribuidores; ● Diversos projetos adicionais (composer, libcontainer, etc).
  17. 17. Instalando ● No linux a instalação é feita apenas com uma única linha que você roda no terminal; ● Por causa das dependências com o kernel do linux, Docker não roda diretamente no windows ou no Mac; ● No Windows ou no Mac rode com Boot2Docker, que deixa tudo rápido, ou rode diretamente em uma VM.
  18. 18. Quem usa?
  19. 19. Dockerfile ● É o “fonte” de uma imagem; ● É uma maneira de gerar imagens, e é a melhor maneira; ● Fácil de saber o que há em uma imagem: leia o Dockerfile; ● Você indica a imagem pai, arquivos para adicionar, comandos para rodar ao criar a imagem, o comando que vai rodar a imagem em si, etc; ● Compilado com ‘docker build’; ● .dockerignore.
  20. 20. Um Dockerfile FROM ubuntu:14.04 MAINTAINER Hudson Brendon <contato.hudsonbrendon@gmal.com> # pip requirements ADD /requirements/requirements.txt /home/requirements/requirements.txt # update e upgrade RUN apt-get -yq update && apt-get -yq upgrade # enstall pre-requisites RUN apt-get -yq install build-essential python-pip python-dev git vim # pip install packages RUN pip install -r /home/requirements/requirements.txt # expose the port EXPOSE 8000 CMD ["/bin/bash"]
  21. 21. DEMO BAIXANDO UMA IMAGEM CRIANDO UMA IMAGEM EMPURRANDO UMA IMAGEM PARA O HUB
  22. 22. Mais informações ● Docker: docker.com ● Tutorial: docker.com/tryit ● Boot2Docker: boot2docker.io
  23. 23. Dúvidas? Hudson Brendon contato.hudsonbrendon@gmail.com @hudsonbrendon

×