SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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 usoTobias Sette
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)Wellington Silva
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerWaldemar Neto
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 
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 DockerBruno Ricardo Siqueira
 
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 bolsoDiogo Lucas
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
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...Renato Groff
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerWellington Silva
 
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 ComposeRoberto Hashioka
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
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 DockerStefan Teixeira
 

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

En vedette

Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Docker: um linux container engine
Docker:  um linux container engineDocker:  um linux container engine
Docker: um linux container engineHudson Brendon
 
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 DockerLucas Arbiza
 
Elasticsearch shards, index, filters and queries
Elasticsearch shards, index, filters and queriesElasticsearch shards, index, filters and queries
Elasticsearch shards, index, filters and queriesWaldemar Neto
 
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 VidaliMasters
 
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 virtualshsouza
 
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ínuaAmazon Web Services LATAM
 
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 DockerLuan Cestari
 
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 devopsDaniel Fernandes
 

En vedette (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
 

Similaire à Introdução ao 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 DockerAécio Pires
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linhamatheuscmpm
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
 
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 2018Fernando Luiz Cola
 
[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 DockerAécio Pires
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
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 Pernambucomatheuscmpm
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker ContainersHugo Henley
 
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 DevelopersDextra Sistemas / Etec Itu
 
Docker e outras ferramentas Devops
Docker e outras ferramentas DevopsDocker e outras ferramentas Devops
Docker e outras ferramentas DevopsCristian Trucco
 
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 KubernetesWillian Azevedo
 
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...iMasters
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!Evandro Couto
 
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 WindowsEdson Marques Teixeira
 

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

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