SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
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, 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.
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.
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 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.
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.
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).
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.
Quem usa?
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.
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"]
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

Weitere ähnliche Inhalte

Mehr von PotiLivre Sobrenome

Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...PotiLivre Sobrenome
 
Thayron Arrais - AWS Amazon Web Services
Thayron Arrais - AWS Amazon Web ServicesThayron Arrais - AWS Amazon Web Services
Thayron Arrais - AWS Amazon Web ServicesPotiLivre Sobrenome
 
João Marcos Araújo do Valle - Big Data
João Marcos Araújo do Valle - Big DataJoão Marcos Araújo do Valle - Big Data
João Marcos Araújo do Valle - Big DataPotiLivre Sobrenome
 
Security updates por que voce deveria aceitar os updates da sua distro leo...
Security updates  por que voce deveria aceitar os updates da sua distro   leo...Security updates  por que voce deveria aceitar os updates da sua distro   leo...
Security updates por que voce deveria aceitar os updates da sua distro leo...PotiLivre Sobrenome
 
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018PotiLivre Sobrenome
 
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...PotiLivre Sobrenome
 
LibreFlix-org - FLISOL Natal 2018
LibreFlix-org - FLISOL Natal 2018LibreFlix-org - FLISOL Natal 2018
LibreFlix-org - FLISOL Natal 2018PotiLivre Sobrenome
 
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018PotiLivre Sobrenome
 
O desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
O desafio de levar a filosofia do Software Livre para o Rio Grande do NorteO desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
O desafio de levar a filosofia do Software Livre para o Rio Grande do NortePotiLivre Sobrenome
 
Softwares Educativos Livres e Recursos Educacionais abertos para Matematica
Softwares Educativos Livres e Recursos Educacionais abertos para MatematicaSoftwares Educativos Livres e Recursos Educacionais abertos para Matematica
Softwares Educativos Livres e Recursos Educacionais abertos para MatematicaPotiLivre Sobrenome
 
Softwares Educativos Livres - PotiCon 2016
Softwares Educativos Livres - PotiCon 2016Softwares Educativos Livres - PotiCon 2016
Softwares Educativos Livres - PotiCon 2016PotiLivre Sobrenome
 
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...PotiLivre Sobrenome
 
O que e joomla - Jose Roberto - Encontro PotiLivre
O que e joomla - Jose Roberto - Encontro PotiLivreO que e joomla - Jose Roberto - Encontro PotiLivre
O que e joomla - Jose Roberto - Encontro PotiLivrePotiLivre Sobrenome
 
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia GomesRuby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia GomesPotiLivre Sobrenome
 
Software Livre no Banco do Brasil: como o BB economizou 50 milhoes de reais c...
Software Livre no Banco do Brasil: como o BB economizou 50 milhoes de reais c...Software Livre no Banco do Brasil: como o BB economizou 50 milhoes de reais c...
Software Livre no Banco do Brasil: como o BB economizou 50 milhoes de reais c...PotiLivre Sobrenome
 
Quem é a Mozilla?? A fundacao que te defende na web e voce nem sabia - Pedro ...
Quem é a Mozilla?? A fundacao que te defende na web e voce nem sabia - Pedro ...Quem é a Mozilla?? A fundacao que te defende na web e voce nem sabia - Pedro ...
Quem é a Mozilla?? A fundacao que te defende na web e voce nem sabia - Pedro ...PotiLivre Sobrenome
 
Minicurso de PHP para iniciantes - Mario Araujo Xavier
Minicurso de PHP para iniciantes - Mario Araujo XavierMinicurso de PHP para iniciantes - Mario Araujo Xavier
Minicurso de PHP para iniciantes - Mario Araujo XavierPotiLivre Sobrenome
 
Mudando para o Software Livre sem complicacao - Diógenes Emmanuel Dantas Soares
Mudando para o Software Livre sem complicacao - Diógenes Emmanuel Dantas SoaresMudando para o Software Livre sem complicacao - Diógenes Emmanuel Dantas Soares
Mudando para o Software Livre sem complicacao - Diógenes Emmanuel Dantas SoaresPotiLivre Sobrenome
 
Implementando Distribuicao de Sistemas WEB Com NGINX - Fernando Henrique Eise...
Implementando Distribuicao de Sistemas WEB Com NGINX - Fernando Henrique Eise...Implementando Distribuicao de Sistemas WEB Com NGINX - Fernando Henrique Eise...
Implementando Distribuicao de Sistemas WEB Com NGINX - Fernando Henrique Eise...PotiLivre Sobrenome
 

Mehr von PotiLivre Sobrenome (20)

Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
 
Thayron Arrais - AWS Amazon Web Services
Thayron Arrais - AWS Amazon Web ServicesThayron Arrais - AWS Amazon Web Services
Thayron Arrais - AWS Amazon Web Services
 
João Marcos Araújo do Valle - Big Data
João Marcos Araújo do Valle - Big DataJoão Marcos Araújo do Valle - Big Data
João Marcos Araújo do Valle - Big Data
 
Igor Oliveira - Puppet
Igor Oliveira - PuppetIgor Oliveira - Puppet
Igor Oliveira - Puppet
 
Security updates por que voce deveria aceitar os updates da sua distro leo...
Security updates  por que voce deveria aceitar os updates da sua distro   leo...Security updates  por que voce deveria aceitar os updates da sua distro   leo...
Security updates por que voce deveria aceitar os updates da sua distro leo...
 
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
 
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
 
LibreFlix-org - FLISOL Natal 2018
LibreFlix-org - FLISOL Natal 2018LibreFlix-org - FLISOL Natal 2018
LibreFlix-org - FLISOL Natal 2018
 
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
 
O desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
O desafio de levar a filosofia do Software Livre para o Rio Grande do NorteO desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
O desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
 
Softwares Educativos Livres e Recursos Educacionais abertos para Matematica
Softwares Educativos Livres e Recursos Educacionais abertos para MatematicaSoftwares Educativos Livres e Recursos Educacionais abertos para Matematica
Softwares Educativos Livres e Recursos Educacionais abertos para Matematica
 
Softwares Educativos Livres - PotiCon 2016
Softwares Educativos Livres - PotiCon 2016Softwares Educativos Livres - PotiCon 2016
Softwares Educativos Livres - PotiCon 2016
 
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
 
O que e joomla - Jose Roberto - Encontro PotiLivre
O que e joomla - Jose Roberto - Encontro PotiLivreO que e joomla - Jose Roberto - Encontro PotiLivre
O que e joomla - Jose Roberto - Encontro PotiLivre
 
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia GomesRuby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
 
Software Livre no Banco do Brasil: como o BB economizou 50 milhoes de reais c...
Software Livre no Banco do Brasil: como o BB economizou 50 milhoes de reais c...Software Livre no Banco do Brasil: como o BB economizou 50 milhoes de reais c...
Software Livre no Banco do Brasil: como o BB economizou 50 milhoes de reais c...
 
Quem é a Mozilla?? A fundacao que te defende na web e voce nem sabia - Pedro ...
Quem é a Mozilla?? A fundacao que te defende na web e voce nem sabia - Pedro ...Quem é a Mozilla?? A fundacao que te defende na web e voce nem sabia - Pedro ...
Quem é a Mozilla?? A fundacao que te defende na web e voce nem sabia - Pedro ...
 
Minicurso de PHP para iniciantes - Mario Araujo Xavier
Minicurso de PHP para iniciantes - Mario Araujo XavierMinicurso de PHP para iniciantes - Mario Araujo Xavier
Minicurso de PHP para iniciantes - Mario Araujo Xavier
 
Mudando para o Software Livre sem complicacao - Diógenes Emmanuel Dantas Soares
Mudando para o Software Livre sem complicacao - Diógenes Emmanuel Dantas SoaresMudando para o Software Livre sem complicacao - Diógenes Emmanuel Dantas Soares
Mudando para o Software Livre sem complicacao - Diógenes Emmanuel Dantas Soares
 
Implementando Distribuicao de Sistemas WEB Com NGINX - Fernando Henrique Eise...
Implementando Distribuicao de Sistemas WEB Com NGINX - Fernando Henrique Eise...Implementando Distribuicao de Sistemas WEB Com NGINX - Fernando Henrique Eise...
Implementando Distribuicao de Sistemas WEB Com NGINX - Fernando Henrique Eise...
 

Docker um Linux container engine - Hudson Brendon

  • 3. Agenda ● Conhecendo o docker ● Criando imagens, contêineres, etc ● Dockerfile ● Dockerhub ● Instalando ● Demos
  • 6.
  • 7.
  • 8.
  • 10. Camadas: Imagens e contêineres
  • 11. Camadas: Imagens e contêineres
  • 12. Camadas: Imagens e contêineres
  • 13. Camadas: Imagens e contêineres
  • 14. 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.
  • 15. 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.
  • 16. DEMO LISTANDO IMAGENS RODANDO UM CONTÊINER LISTANDO, PARANDO, REINICIANDO CONTÊINERES
  • 17. 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.
  • 18. 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.
  • 19. 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).
  • 20. 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.
  • 22. 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.
  • 23. 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"]
  • 24. DEMO BAIXANDO UMA IMAGEM CRIANDO UMA IMAGEM EMPURRANDO UMA IMAGEM PARA O HUB
  • 25. Mais informações ● Docker: docker.com ● Tutorial: docker.com/tryit ● Boot2Docker: boot2docker.io