SlideShare a Scribd company logo
1 of 11
Introdução ao Docker
MeetUp Open Talks
RJ - 03/2015
O que é o Docker
Uma abstração opensource que automatiza
a implementação de qualquer aplicação de
forma leve e portátil em containers auto-
suficientes, onde poderão ser executados
nos mais diversos ambientes.
Motivação
Nós queremos entregar nosso software funcional para
diferentes ambientes de forma simples.
Principais Problemas
● Mover do ambiente de desenvolvimento para produção é difícil
○ Bibliotecas conflitantes / Diferentes versões
○ Diferentes sistemas operacionais
○ Diferentes versões de banco de dados
● Criar, atualizar e manter toda a software stack é difícil
○ O projeto usualmente contém muitas libs, bancos de dados, serviços…
○ Difícil de manter uma versão do projeto reproduzível
● Teste / Integração Contínua / Entrega Contínua é difîcil de automatizar
Como resolver isso (DIY)
Faça você mesmo (Do-It-Yourself)
1. Copiar / Instalar depedencias (manualmente)
2. Preparar os banco de dados
3. Instalar a última versão do projeto
4. Configurar as propriedades
5. Testar o projeto em execução
6. Epaa! Alguma coisa esta faltando, não esta funcionando!
7. Consertar os erros
8. Repetir os testes da aplicação novamente até estar funcionando
9. Escrever manuais para ajudar outras pessoas a configurar o (monstrinho).
Como resolver isso (VMs)
Empacotar tudo em uma VM e execute o deploy em
diferentes ambientes
Desvantages das VMs
● Pesada. Quantas VMs você pode rodar em sua maquina?
● Consumo alto de recursos. Virtualização completa OS, I/O, etc…
● Tamanho. Usualmente precisa de muitos GBs para cada VM
● Problemas de portabilidade. Diferentes soluções de virtualização.
● Gerenciamento. Difícil de manter / configurar / reusar diferentes versões de
cada VM.
● Problemas de gerenciamento podem ser resolvidos com Vagrant, Chef,
Puppet…
Como resolver isso (Docker)
Empacotar tudo em containers LXC
Virtual Machines
Cada aplicação virtualizada não inclui somente a aplicação - onde pode
ser somente 10MB de arquivo - e as libs e binários necessários, mas
também todo um sistema operacional - onde pode ter mais de 10 GB.
Docker vs Virtual Machines
Docker
A Docker Engine Container compreende apenas a aplicação e suas
dependencias. Ela roda em um processo isolado em um userspace no
sistema operacional hospedeiro, compartilhando o kernel com os outros
containers. Dessa forma é possível ter o isolamento e alocamento de
recurso que uma vm proporciona porém mais portatíl e eficiente.
O Ecosistema do Docker
Obrigado
By
Hugo Leonardo Costa e Silva
WebDeveloper at Holis
@hugoleodev

More Related Content

What's hot

What's hot (20)

Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
 
O que é Docker?
O que é Docker?O que é Docker?
O que é 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
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e Docker
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando 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
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Docker
DockerDocker
Docker
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e Compose
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
TDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerTDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de Docker
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Docker compose
Docker composeDocker compose
Docker compose
 

Viewers also liked

Indo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com DockerIndo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com Docker
Luan Cestari
 

Viewers also liked (14)

Docker introduction
Docker introductionDocker introduction
Docker introduction
 
reveal.js 3.0.0
reveal.js 3.0.0reveal.js 3.0.0
reveal.js 3.0.0
 
Docker: um linux container engine
Docker:  um linux container engineDocker:  um linux container engine
Docker: um linux container engine
 
DevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e DockerDevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e Docker
 
Elasticsearch shards, index, filters and queries
Elasticsearch shards, index, filters and queriesElasticsearch shards, index, filters and queries
Elasticsearch shards, index, filters and queries
 
Tcc obz -
Tcc obz - Tcc obz -
Tcc obz -
 
Cloud: Container Service In Action, por Heitor Vidal
Cloud: Container Service In Action, por Heitor VidalCloud: Container Service In Action, por Heitor Vidal
Cloud: Container Service In Action, por Heitor Vidal
 
Serviços em nuvem para sua infraestrutura virtual
Serviços em nuvem para sua infraestrutura virtualServiços em nuvem para sua infraestrutura virtual
Serviços em nuvem para sua infraestrutura virtual
 
Global Azure Bootcamp 2015 Curitiba
Global Azure Bootcamp 2015 CuritibaGlobal Azure Bootcamp 2015 Curitiba
Global Azure Bootcamp 2015 Curitiba
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
Gerenciando Implementação de Projetos de CLOUD
Gerenciando Implementação de Projetos de CLOUDGerenciando Implementação de Projetos de CLOUD
Gerenciando Implementação de Projetos de CLOUD
 
Indo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com DockerIndo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com Docker
 
projeto_daniel
projeto_danielprojeto_daniel
projeto_daniel
 
Jenkins além da integração contínua - práticas de devops
Jenkins além da integração contínua - práticas de devopsJenkins além da integração contínua - práticas de devops
Jenkins além da integração contínua - práticas de devops
 

Similar to Introdução ao docker

Similar to Introdução ao docker (20)

Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Docker meetup
Docker meetupDocker meetup
Docker meetup
 
Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
 
Docker.io:
Docker.io: Docker.io:
Docker.io:
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Dockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP PernambucoDockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP Pernambuco
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
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
 
Docker e outras ferramentas Devops
Docker e outras ferramentas DevopsDocker e outras ferramentas Devops
Docker e outras ferramentas Devops
 
Workshop Docker
Workshop DockerWorkshop Docker
Workshop Docker
 
Docker - Básico
Docker - BásicoDocker - Básico
Docker - Básico
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
O poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesO poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços 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...
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!
 
7º Meetup Docker Docker BH Dockerizando No Ambiente Windows
7º Meetup Docker Docker BH Dockerizando No Ambiente Windows7º Meetup Docker Docker BH Dockerizando No Ambiente Windows
7º Meetup Docker Docker BH Dockerizando No Ambiente Windows
 

Recently uploaded

Recently uploaded (8)

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
 
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 - 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
 
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
 
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
 
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
 
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
 
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
 

Introdução ao docker

  • 1. Introdução ao Docker MeetUp Open Talks RJ - 03/2015
  • 2. O que é o Docker Uma abstração opensource que automatiza a implementação de qualquer aplicação de forma leve e portátil em containers auto- suficientes, onde poderão ser executados nos mais diversos ambientes.
  • 3. Motivação Nós queremos entregar nosso software funcional para diferentes ambientes de forma simples.
  • 4. Principais Problemas ● Mover do ambiente de desenvolvimento para produção é difícil ○ Bibliotecas conflitantes / Diferentes versões ○ Diferentes sistemas operacionais ○ Diferentes versões de banco de dados ● Criar, atualizar e manter toda a software stack é difícil ○ O projeto usualmente contém muitas libs, bancos de dados, serviços… ○ Difícil de manter uma versão do projeto reproduzível ● Teste / Integração Contínua / Entrega Contínua é difîcil de automatizar
  • 5. Como resolver isso (DIY) Faça você mesmo (Do-It-Yourself) 1. Copiar / Instalar depedencias (manualmente) 2. Preparar os banco de dados 3. Instalar a última versão do projeto 4. Configurar as propriedades 5. Testar o projeto em execução 6. Epaa! Alguma coisa esta faltando, não esta funcionando! 7. Consertar os erros 8. Repetir os testes da aplicação novamente até estar funcionando 9. Escrever manuais para ajudar outras pessoas a configurar o (monstrinho).
  • 6. Como resolver isso (VMs) Empacotar tudo em uma VM e execute o deploy em diferentes ambientes
  • 7. Desvantages das VMs ● Pesada. Quantas VMs você pode rodar em sua maquina? ● Consumo alto de recursos. Virtualização completa OS, I/O, etc… ● Tamanho. Usualmente precisa de muitos GBs para cada VM ● Problemas de portabilidade. Diferentes soluções de virtualização. ● Gerenciamento. Difícil de manter / configurar / reusar diferentes versões de cada VM. ● Problemas de gerenciamento podem ser resolvidos com Vagrant, Chef, Puppet…
  • 8. Como resolver isso (Docker) Empacotar tudo em containers LXC
  • 9. Virtual Machines Cada aplicação virtualizada não inclui somente a aplicação - onde pode ser somente 10MB de arquivo - e as libs e binários necessários, mas também todo um sistema operacional - onde pode ter mais de 10 GB. Docker vs Virtual Machines Docker A Docker Engine Container compreende apenas a aplicação e suas dependencias. Ela roda em um processo isolado em um userspace no sistema operacional hospedeiro, compartilhando o kernel com os outros containers. Dessa forma é possível ter o isolamento e alocamento de recurso que uma vm proporciona porém mais portatíl e eficiente.
  • 10. O Ecosistema do Docker
  • 11. Obrigado By Hugo Leonardo Costa e Silva WebDeveloper at Holis @hugoleodev