SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Orquestrando Docker
Containers
Machine, Swarm e Compose
Roberto G. Hashioka - @rhashioka – 2015-06-10 – São Paulo/SP!
Informações Pessoais
•  Roberto Gandolfo Hashioka
•  @rogaha (Github) e @rhashioka (Twitter)!
•  No Docker em Maio 2013 (Dotcloud)!
•  Finanças -> Software Engineer!
•  Projeto Atual: Docker Hub/Metrics!
Objetivo da Apresentação
•  Explicar o que é o Docker e como usá-lo
•  Explicar o paradigma entre dev e ops!
•  Explicar como rodar aplicações distribuidas em qualquer ambiente!
•  Compartilhar experiências (Silicon Valley)!
Informações dos Projetos
•  Projetos no Github
•  Docker – (github.com/docker/docker)!
•  Docker Machine – (github.com/docker/machine)!
•  Docker Swarm – (github.com/docker/swarm)!
•  Docker Compose – (github.com/docker/compose)!
Aplicações distribuidas com Docker são modularizadas, portáveis e dinâmicas
O que é o Docker Engine?
•  Ferramenta que facilita a construção, distribuição e execução de qualquer a
plicação em qualquer ambiente (VM, nuvem, servidor fisico, laptop)
•  Sua aplicação roda de forma isolada com seus próprios processos, IP e file
system, independente do host. Ou seja, dentro de um container
•  Construção: empacota sua aplicação numa imagem (docker build)!
•  Distribuição: Move a imagem entre diferentes maquinas (docker push/pull)!
•  Execução: Execute sua aplicação (docker run)!
Contrução: docker build – Dockerfile
•  Receita para criar uma imagem (container)
•  Começa de uma base: FROM ubuntu:14.04, fedora:20, debian:jessie!
•  Rode comandos: RUN apt-get install –y firefox ssh !
•  Copie seus dados: ADD /app/code /code/!
•  Crie scripts de inicialização ou execute arquivos binários: CMD start_firefox
.sh, /usr/sbin/sshd –D!
Exemplo de Dockerfile
-----------------------------------------------------------------------------------------------------------!
FROM ubuntu:14.04!
MAINTAINER Roberto Hashioka (roberto@docker.com)!
RUN apt-get update && apt-get install -y nginx!
RUN echo ’Hello Developers from Sao Paulo' > /usr/share/nginx/html/index.html!
EXPOSE 80!
------------------------------------------------------------------------------------------------------------!
$ docker build –t rogaha/web .!
$ docker run –d –p 80:80 –-name container_web_demo_sp rogaha/web!
Distribuição: docker pull / push
•  Transfere sua aplicação dockerzizada de um servidor para outro
•  Registry Hub: Repositório central de imagens criadas pela comunidade!
•  O objetivo principal do Registry Hub é facilitar a criação de aplicações !
•  Milhares de images foram criadas e são mantidas pela comunidade. Por
exemplo: nginx, ubuntu, postgres, redis, node, centos, wordpress, java (htt
ps://registry.hub.docker.com/repos/library/)!
Execução: docker run
•  Roda as aplicações de forma consistente e confiável
•  Elimina os problemas de diferenças entre versionamento das dependências!
•  Os containers rodam de forma isolada. Você pode rodar aplicações em De
bian, Ubuntu, CentOS na mesmo servidor/laptop!
•  Se funciona no seu laptop, irá funcionar no servidor!
•  RESOLVE grande parte dos problemas entre DEV e OPS!
Estatíticas da comunidade Docker
•  > 950 Contribuidores no Github
•  > 80.000 Projetos dockerized no Github
•  > 140.000 Repositórios no Docker Hub!
•  > 48.000 membros no Meetup.com, > 150 cidades, > 50 países!
•  > 400.000.000 images do docker baixadas (docker pull)!
Docker Machine: Zero to Docker em minutos
Antes
• Várias etapas de setup!
• Conecta a apenas um host!
• Instalação e configuração
para aquele host específico!
Depois
• Um comando de setup!
• Provisiona o Docker Engine
em qualquer host!
• Integrações para criar hosts
com o docker nas nuvens !
Docker Machine
Docker Machine
$ machine create
Docker Swarm: Otimize recursos, Tolerância a falhas
e alta disponibilidade
Antes
• Sem solução nativa!
• Cada Docker Engine é
independente entre si!
!
Depois
• Cluster de Docker Engines
como se fosse um só!
• Interface única de dev.!
• Swarm dimensiona seu app!
• Agendamento nativa das app!
• Integração com outros
agendadores !
Docker Swarm
$ docker run swarm
Docker Swarm
$ docker run
Docker Swarm
$ docker run
Batteries included
but swappable
Docker Compose: Simplifica Aplicações multi-
container
Antes
• Simples aplicações individuais
em containers!
• Sem solução nativa para
aplicações multi-containers!
• Ineficiente: Precisa repetir
commandos para cada
container!
!
Depois
• Único arquivo .yml que define
sua aplicação inteira!
• Rode sua aplicação completa
com um único comando!
• Atualize facilmente sua
aplicação com o arquivo .yml!
!
Docker Compose
containers:
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
environment:
- PYTHONUNBUFFERED=1
redis:
image: redis:latest
command: redis-server --appendonly yes
Docker Compose
$ docker-compose
Docker Compose
$ docker-compose
A Docker Distributed Application
$ dockerHappy
Devs
Ops
Flexibility
Web x8 Cache x2Database x2
Ecosistema de Gestão de Containers
Infrastructure
Clustering and Scheduling
Service Discovery
Docker Hub
Promo code: docker-sp-meetup
https://registry.hub.docker.com/plans/micro
@rhashioka
Obrigado!
Perguntas?
@rhashioka

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Testadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de DockerTestadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de Docker
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Apresentação docker
Apresentação dockerApresentação docker
Apresentação docker
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolso
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e AnsibleTDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Workshop Docker
Workshop DockerWorkshop Docker
Workshop Docker
 
Docker volumes
Docker volumesDocker volumes
Docker volumes
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting docker
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
Docker + Django
Docker + DjangoDocker + Django
Docker + Django
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 

Andere mochten auch

Andere mochten auch (14)

Escalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com BeanstalkEscalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com Beanstalk
 
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeScrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
 
Bluesoft - Sistema de Gestão - Apresentação Comercial
Bluesoft - Sistema de Gestão - Apresentação ComercialBluesoft - Sistema de Gestão - Apresentação Comercial
Bluesoft - Sistema de Gestão - Apresentação Comercial
 
Light Talk Docker Compose
Light Talk Docker ComposeLight Talk Docker Compose
Light Talk Docker Compose
 
Apresentação do Bluesoft ERP - Módulo Logístico
Apresentação do Bluesoft ERP - Módulo LogísticoApresentação do Bluesoft ERP - Módulo Logístico
Apresentação do Bluesoft ERP - Módulo Logístico
 
Apresentação do Bluesoft ERP - Módulo Contábil
Apresentação do Bluesoft ERP - Módulo ContábilApresentação do Bluesoft ERP - Módulo Contábil
Apresentação do Bluesoft ERP - Módulo Contábil
 
Apresentação do Bluesoft ERP - Módulo de Patrimônio
Apresentação do Bluesoft ERP - Módulo de PatrimônioApresentação do Bluesoft ERP - Módulo de Patrimônio
Apresentação do Bluesoft ERP - Módulo de Patrimônio
 
Apresentação do Bluesoft ERP - Módulo de CRM e DP
Apresentação do Bluesoft ERP - Módulo de CRM e DPApresentação do Bluesoft ERP - Módulo de CRM e DP
Apresentação do Bluesoft ERP - Módulo de CRM e DP
 
Ink saving - Imprimir melhor com menos tinta
Ink saving - Imprimir melhor com menos tintaInk saving - Imprimir melhor com menos tinta
Ink saving - Imprimir melhor com menos tinta
 
Webinar: Como explorar os recursos de aprendizagem da AWS
Webinar: Como explorar os recursos de aprendizagem da AWSWebinar: Como explorar os recursos de aprendizagem da AWS
Webinar: Como explorar os recursos de aprendizagem da AWS
 
Apresentação do Bluesoft ERP - Módulo Comercial
Apresentação do Bluesoft ERP - Módulo ComercialApresentação do Bluesoft ERP - Módulo Comercial
Apresentação do Bluesoft ERP - Módulo Comercial
 
Processamento Assíncrono com PHP
Processamento Assíncrono com PHPProcessamento Assíncrono com PHP
Processamento Assíncrono com PHP
 
Webinar: Apresentando AWS Device Farm
Webinar: Apresentando AWS Device Farm Webinar: Apresentando AWS Device Farm
Webinar: Apresentando AWS Device Farm
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
 

Ähnlich wie Orquestrando Docker Containers: Machine, Swarm e Compose

Ähnlich wie Orquestrando Docker Containers: Machine, Swarm e Compose (20)

Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
 
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Docker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalarDocker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalar
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Orquestrando Docker Containers: Machine, Swarm e Compose

  • 1. Orquestrando Docker Containers Machine, Swarm e Compose Roberto G. Hashioka - @rhashioka – 2015-06-10 – São Paulo/SP!
  • 2. Informações Pessoais •  Roberto Gandolfo Hashioka •  @rogaha (Github) e @rhashioka (Twitter)! •  No Docker em Maio 2013 (Dotcloud)! •  Finanças -> Software Engineer! •  Projeto Atual: Docker Hub/Metrics!
  • 3. Objetivo da Apresentação •  Explicar o que é o Docker e como usá-lo •  Explicar o paradigma entre dev e ops! •  Explicar como rodar aplicações distribuidas em qualquer ambiente! •  Compartilhar experiências (Silicon Valley)!
  • 4. Informações dos Projetos •  Projetos no Github •  Docker – (github.com/docker/docker)! •  Docker Machine – (github.com/docker/machine)! •  Docker Swarm – (github.com/docker/swarm)! •  Docker Compose – (github.com/docker/compose)! Aplicações distribuidas com Docker são modularizadas, portáveis e dinâmicas
  • 5. O que é o Docker Engine? •  Ferramenta que facilita a construção, distribuição e execução de qualquer a plicação em qualquer ambiente (VM, nuvem, servidor fisico, laptop) •  Sua aplicação roda de forma isolada com seus próprios processos, IP e file system, independente do host. Ou seja, dentro de um container •  Construção: empacota sua aplicação numa imagem (docker build)! •  Distribuição: Move a imagem entre diferentes maquinas (docker push/pull)! •  Execução: Execute sua aplicação (docker run)!
  • 6. Contrução: docker build – Dockerfile •  Receita para criar uma imagem (container) •  Começa de uma base: FROM ubuntu:14.04, fedora:20, debian:jessie! •  Rode comandos: RUN apt-get install –y firefox ssh ! •  Copie seus dados: ADD /app/code /code/! •  Crie scripts de inicialização ou execute arquivos binários: CMD start_firefox .sh, /usr/sbin/sshd –D!
  • 7. Exemplo de Dockerfile -----------------------------------------------------------------------------------------------------------! FROM ubuntu:14.04! MAINTAINER Roberto Hashioka (roberto@docker.com)! RUN apt-get update && apt-get install -y nginx! RUN echo ’Hello Developers from Sao Paulo' > /usr/share/nginx/html/index.html! EXPOSE 80! ------------------------------------------------------------------------------------------------------------! $ docker build –t rogaha/web .! $ docker run –d –p 80:80 –-name container_web_demo_sp rogaha/web!
  • 8. Distribuição: docker pull / push •  Transfere sua aplicação dockerzizada de um servidor para outro •  Registry Hub: Repositório central de imagens criadas pela comunidade! •  O objetivo principal do Registry Hub é facilitar a criação de aplicações ! •  Milhares de images foram criadas e são mantidas pela comunidade. Por exemplo: nginx, ubuntu, postgres, redis, node, centos, wordpress, java (htt ps://registry.hub.docker.com/repos/library/)!
  • 9. Execução: docker run •  Roda as aplicações de forma consistente e confiável •  Elimina os problemas de diferenças entre versionamento das dependências! •  Os containers rodam de forma isolada. Você pode rodar aplicações em De bian, Ubuntu, CentOS na mesmo servidor/laptop! •  Se funciona no seu laptop, irá funcionar no servidor! •  RESOLVE grande parte dos problemas entre DEV e OPS!
  • 10. Estatíticas da comunidade Docker •  > 950 Contribuidores no Github •  > 80.000 Projetos dockerized no Github •  > 140.000 Repositórios no Docker Hub! •  > 48.000 membros no Meetup.com, > 150 cidades, > 50 países! •  > 400.000.000 images do docker baixadas (docker pull)!
  • 11. Docker Machine: Zero to Docker em minutos Antes • Várias etapas de setup! • Conecta a apenas um host! • Instalação e configuração para aquele host específico! Depois • Um comando de setup! • Provisiona o Docker Engine em qualquer host! • Integrações para criar hosts com o docker nas nuvens !
  • 14. Docker Swarm: Otimize recursos, Tolerância a falhas e alta disponibilidade Antes • Sem solução nativa! • Cada Docker Engine é independente entre si! ! Depois • Cluster de Docker Engines como se fosse um só! • Interface única de dev.! • Swarm dimensiona seu app! • Agendamento nativa das app! • Integração com outros agendadores !
  • 17. Docker Swarm $ docker run Batteries included but swappable
  • 18. Docker Compose: Simplifica Aplicações multi- container Antes • Simples aplicações individuais em containers! • Sem solução nativa para aplicações multi-containers! • Ineficiente: Precisa repetir commandos para cada container! ! Depois • Único arquivo .yml que define sua aplicação inteira! • Rode sua aplicação completa com um único comando! • Atualize facilmente sua aplicação com o arquivo .yml! !
  • 19. Docker Compose containers: web: build: . command: python app.py ports: - "5000:5000" volumes: - .:/code links: - redis environment: - PYTHONUNBUFFERED=1 redis: image: redis:latest command: redis-server --appendonly yes
  • 22. A Docker Distributed Application $ dockerHappy Devs Ops Flexibility Web x8 Cache x2Database x2
  • 23. Ecosistema de Gestão de Containers Infrastructure Clustering and Scheduling Service Discovery
  • 24. Docker Hub Promo code: docker-sp-meetup https://registry.hub.docker.com/plans/micro @rhashioka