SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
www.cobli.co
Docker + Compose
Docker + Compose na prática
Evandro Sanches & Ivan Stoiev
Docker + Compose
www.cobli.co 2
Namespaces e Cgroups
Entendendo Containers
Docker + Compose na prática
Namespaces e
Cgroups
AGENDA
Como o linux isola e limita seus
processos.
Cobli
Notas sobre o Docker
Docker + Compose
www.cobli.co 3
Isolando processos
O kernel do linux oferece uma série de
funcionalidades para dividir os seus
recursos, possibilitando criar ambientes
isolados uns dos outros.
Existem 7 namespaces diferentes: Mount,
Process ID, Network, IPC, UTS, User e
Control Group. [man page]
NAMESPACES
Fonte: www.toptal.com
Docker + Compose
www.cobli.co 4
Limitando o acesso a
recursos
Control Groups permitem que o kernel
gerencie o acesso a recursos de forma a :
➔ limitar o acesso,
➔ contabilizar o uso
➔ organizar a prioridade de cada processo
ao acessar o recurso
➔ controlar os processos no grupo
CGROUPS
Fonte: blog.transportsystems.co
Docker + Compose
www.cobli.co 5
Namespaces e Cgroups
Entendendo Containers
AGENDA
Cobli
Notas sobre o Docker
Entendendo
Containers
Docker + Compose na prática
Docker + Compose
www.cobli.co 6
Containers: isolando aplicações com menos
desperdício
Subindo nos ombros de
gigantes
Gerenciadores de containers
usam as funcionalidades do
Linux para rodar múltiplas
aplicações em separado, mas
compartilhando recursos
como CPU, memória e disco
Mantendo o perfil enxuto
Cada container roda somente
um programa por vez, e não
precisa incluir serviços
básicos e gerenciamento de
hardware (drivers)
Entendo as limitações
Embora mais eficientes, em
geral containers são menos
seguros que máquinas
virtuais; é comum combinar
ambos para garantir o bom
funcionamento de um
ambiente
DOCKER
Docker + Compose
www.cobli.co
Containers vs. Máquinas Virtuais
Docker + Compose
www.cobli.co 8
Namespaces e Cgroups
Entendendo Containers
AGENDA
Cobli
Notas sobre o Docker
Notas sobre o Docker
Motivação e Conceitos Básicos
Docker + Compose na prática
Docker + Compose
www.cobli.co 9
O que é o Docker?
Uma ferramenta de criação, distribuição e
execução de aplicações usando Containers
Desde 2013 vem mudando a maneira como
desenvolvedores e usuários interagem com
seus sistemas
DOCKER
Docker + Compose
www.cobli.co 10
“Build once, run anywhere”
Sua principal inovação é a criação de
imagens de aplicações auto-suficientes, que
podem rodar em qualquer máquina com
Linux de maneira eficiente
A mesma imagem pode ser usada durante o
desenvolvimento, testes, e colocada em
produção!
DOCKER
Docker + Compose
www.cobli.co 11
Escapando do “Dependency
Hell”
Aplicações podem definir as versões da
distribuição Linux, bibliotecas, linguagens
de programação e configurações sem
interferirem umas com as outras
Uma vez criada a imagem, ela funcionará da
mesma maneira indefinidamente,
independente de mudanças externas
DOCKER
t
Docker + Compose
www.cobli.co 12
Construindo aplicações
peça-a-peça
O Docker Hub é o repositório central do
Docker: nele você vai encontrar imagens
prontas que servem de base para suas
aplicações
O Docker cuida de distribuí-las de maneira
eficiente, e compartilhar o conteúdo entre
imagens similares
DOCKER
Docker + Compose
www.cobli.co 13
Namespaces e Cgroups
Entendendo Containers
AGENDA
Cobli
Notas sobre o Docker
Docker & Compose na
prática
Docker + Compose na prática
Docker + Compose
www.cobli.co 14
Dockerfile
::= 'FROM' image ( ( 'RUN' | 'CMD' ) command | 'WORKDIR' path | 'EXPOSE' port | 'COPY' src+ dst )*
Dockerfile
Docker + Compose
www.cobli.co 15
Docker ::= 'docker' ( 'build' ( '-t' tag )? path | ( 'run' '--rm'? '-ti'? | 'push' ) image | 'ps' | 'rm' container | 'login' )?
docker CLI
Docker + Compose
www.cobli.co 16
Compose ::= 'docker-compose' ( 'up' | 'ps' | 'exec' service | 'pull' )?
docker-compose CLI
Docker + Compose
www.cobli.co 17
Casos de uso
Prover ambiente de
desenvolvimento local
Possibilita o uso de diversos
recursos (bases de dados,
web services, scripts) sem
necessidade modificações na
máquina do desenvolvedor.
Equivalencia entre os
ambientes
Mesma Dockerfile = mesma
imagem gerada
(idempotência)
É possível garantir
equivalência (em termos de
software) entre ambientes
(dev, staging, produção,
etc…)
Simplificação dos processo
de CI/CD
Em processos de
build/test/deploy,
geralmente é mais rápido
que "empacotar e instalar"
software, além de fornecer
um método unificado para os
pipelines
DOCKER
Docker + Compose
www.cobli.co 18
Namespaces e Cgroups
Entendendo Containers
AGENDA
Cobli
Notas sobre o Docker
Cobli
Docker + Compose na prática
www.cobli.co
NOVO TEMPLATE
Somos uma empresa
de IoT que aumenta a
eficiência da logística
e minimiza o roubo e
a fraude
SOBRE A COBLI
20
Conectamos
veículos à internet
SEM INSTALAÇÃO PROFISSIONAL
SOBRE A COBLI
De qualquer
tipo de veículo
NA RUA
DENTRO DO WAREHOUSE
SOBRE A COBLI
www.cobli.co
NODE.JS
Nosso sistema
gera valor para
frotas em 4 pilares
SOBRE A COBLI
CONTROLE DE OPERAÇÕES
OTIMIZAÇÃO DE ROTAS
REDUÇÃO DE GASTOS
COMPLIANCE
Monitoramento no painel Cobli
Otimizando a eficiência
logística e minimizando
o risco
SOBRE A COBLI
Já dirigimos mais de
100 milhões de km com
nossas frotas
Estamos presentes em mais de 100 cidades
de 4 países e continuamos expandindo
+50 Indústrias +600Clientes
Centenas de clientes em todos os estados do BrasilClientes em mais de
50 indústrias
SOBRE A COBLI
www.cobli.co
Docker + Compose
Obrigado!
Contato: Estamos contratando!
evandro@cobli.co
ivan.stoiev@cobli.co
https://jobs.kenoby.com/cobli

Mais conteúdo relacionado

Mais procurados

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
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresCarlos Andre Fernandes
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerLuís Bianchin
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
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
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerWaldemar Neto
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogCesar Augusto Nogueira
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoSérgio Lima
 
São paulo docker meetup #2
São paulo docker meetup #2São paulo docker meetup #2
São paulo docker meetup #2Azuki
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 

Mais procurados (20)

Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Docker - Básico
Docker - BásicoDocker - Básico
Docker - Básico
 
Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao 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...
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhores
 
Oficina docker
Oficina dockerOficina docker
Oficina docker
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
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
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e Docker
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
São paulo docker meetup #2
São paulo docker meetup #2São paulo docker meetup #2
São paulo docker meetup #2
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 

Semelhante a Docker + Compose na prática: Namespaces, Cgroups e Containers

Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
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
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linhamatheuscmpm
 
DevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaDevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaSavanna Denega
 
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
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Renato Groff
 
Escalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyEscalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyRadamés Roriz
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Marcel Cattaneo
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersFrancisco Gonçalves
 
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
 

Semelhante a Docker + Compose na prática: Namespaces, Cgroups e Containers (20)

Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
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
DockerDocker
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
 
Docker para iniciantes
Docker para iniciantesDocker para iniciantes
Docker para iniciantes
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Docker meetup
Docker meetupDocker meetup
Docker meetup
 
DevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaDevOps na prática - Savanna Denega
DevOps na prática - Savanna Denega
 
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
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
 
Escalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyEscalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em ruby
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containers
 
Workshop Docker
Workshop DockerWorkshop Docker
Workshop Docker
 
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
 

Docker + Compose na prática: Namespaces, Cgroups e Containers

  • 1. www.cobli.co Docker + Compose Docker + Compose na prática Evandro Sanches & Ivan Stoiev
  • 2. Docker + Compose www.cobli.co 2 Namespaces e Cgroups Entendendo Containers Docker + Compose na prática Namespaces e Cgroups AGENDA Como o linux isola e limita seus processos. Cobli Notas sobre o Docker
  • 3. Docker + Compose www.cobli.co 3 Isolando processos O kernel do linux oferece uma série de funcionalidades para dividir os seus recursos, possibilitando criar ambientes isolados uns dos outros. Existem 7 namespaces diferentes: Mount, Process ID, Network, IPC, UTS, User e Control Group. [man page] NAMESPACES Fonte: www.toptal.com
  • 4. Docker + Compose www.cobli.co 4 Limitando o acesso a recursos Control Groups permitem que o kernel gerencie o acesso a recursos de forma a : ➔ limitar o acesso, ➔ contabilizar o uso ➔ organizar a prioridade de cada processo ao acessar o recurso ➔ controlar os processos no grupo CGROUPS Fonte: blog.transportsystems.co
  • 5. Docker + Compose www.cobli.co 5 Namespaces e Cgroups Entendendo Containers AGENDA Cobli Notas sobre o Docker Entendendo Containers Docker + Compose na prática
  • 6. Docker + Compose www.cobli.co 6 Containers: isolando aplicações com menos desperdício Subindo nos ombros de gigantes Gerenciadores de containers usam as funcionalidades do Linux para rodar múltiplas aplicações em separado, mas compartilhando recursos como CPU, memória e disco Mantendo o perfil enxuto Cada container roda somente um programa por vez, e não precisa incluir serviços básicos e gerenciamento de hardware (drivers) Entendo as limitações Embora mais eficientes, em geral containers são menos seguros que máquinas virtuais; é comum combinar ambos para garantir o bom funcionamento de um ambiente DOCKER
  • 8. Docker + Compose www.cobli.co 8 Namespaces e Cgroups Entendendo Containers AGENDA Cobli Notas sobre o Docker Notas sobre o Docker Motivação e Conceitos Básicos Docker + Compose na prática
  • 9. Docker + Compose www.cobli.co 9 O que é o Docker? Uma ferramenta de criação, distribuição e execução de aplicações usando Containers Desde 2013 vem mudando a maneira como desenvolvedores e usuários interagem com seus sistemas DOCKER
  • 10. Docker + Compose www.cobli.co 10 “Build once, run anywhere” Sua principal inovação é a criação de imagens de aplicações auto-suficientes, que podem rodar em qualquer máquina com Linux de maneira eficiente A mesma imagem pode ser usada durante o desenvolvimento, testes, e colocada em produção! DOCKER
  • 11. Docker + Compose www.cobli.co 11 Escapando do “Dependency Hell” Aplicações podem definir as versões da distribuição Linux, bibliotecas, linguagens de programação e configurações sem interferirem umas com as outras Uma vez criada a imagem, ela funcionará da mesma maneira indefinidamente, independente de mudanças externas DOCKER t
  • 12. Docker + Compose www.cobli.co 12 Construindo aplicações peça-a-peça O Docker Hub é o repositório central do Docker: nele você vai encontrar imagens prontas que servem de base para suas aplicações O Docker cuida de distribuí-las de maneira eficiente, e compartilhar o conteúdo entre imagens similares DOCKER
  • 13. Docker + Compose www.cobli.co 13 Namespaces e Cgroups Entendendo Containers AGENDA Cobli Notas sobre o Docker Docker & Compose na prática Docker + Compose na prática
  • 14. Docker + Compose www.cobli.co 14 Dockerfile ::= 'FROM' image ( ( 'RUN' | 'CMD' ) command | 'WORKDIR' path | 'EXPOSE' port | 'COPY' src+ dst )* Dockerfile
  • 15. Docker + Compose www.cobli.co 15 Docker ::= 'docker' ( 'build' ( '-t' tag )? path | ( 'run' '--rm'? '-ti'? | 'push' ) image | 'ps' | 'rm' container | 'login' )? docker CLI
  • 16. Docker + Compose www.cobli.co 16 Compose ::= 'docker-compose' ( 'up' | 'ps' | 'exec' service | 'pull' )? docker-compose CLI
  • 17. Docker + Compose www.cobli.co 17 Casos de uso Prover ambiente de desenvolvimento local Possibilita o uso de diversos recursos (bases de dados, web services, scripts) sem necessidade modificações na máquina do desenvolvedor. Equivalencia entre os ambientes Mesma Dockerfile = mesma imagem gerada (idempotência) É possível garantir equivalência (em termos de software) entre ambientes (dev, staging, produção, etc…) Simplificação dos processo de CI/CD Em processos de build/test/deploy, geralmente é mais rápido que "empacotar e instalar" software, além de fornecer um método unificado para os pipelines DOCKER
  • 18. Docker + Compose www.cobli.co 18 Namespaces e Cgroups Entendendo Containers AGENDA Cobli Notas sobre o Docker Cobli Docker + Compose na prática
  • 19. www.cobli.co NOVO TEMPLATE Somos uma empresa de IoT que aumenta a eficiência da logística e minimiza o roubo e a fraude SOBRE A COBLI
  • 20. 20 Conectamos veículos à internet SEM INSTALAÇÃO PROFISSIONAL SOBRE A COBLI
  • 21. De qualquer tipo de veículo NA RUA DENTRO DO WAREHOUSE SOBRE A COBLI
  • 22. www.cobli.co NODE.JS Nosso sistema gera valor para frotas em 4 pilares SOBRE A COBLI CONTROLE DE OPERAÇÕES OTIMIZAÇÃO DE ROTAS REDUÇÃO DE GASTOS COMPLIANCE Monitoramento no painel Cobli
  • 23. Otimizando a eficiência logística e minimizando o risco SOBRE A COBLI
  • 24. Já dirigimos mais de 100 milhões de km com nossas frotas Estamos presentes em mais de 100 cidades de 4 países e continuamos expandindo +50 Indústrias +600Clientes Centenas de clientes em todos os estados do BrasilClientes em mais de 50 indústrias SOBRE A COBLI
  • 25. www.cobli.co Docker + Compose Obrigado! Contato: Estamos contratando! evandro@cobli.co ivan.stoiev@cobli.co https://jobs.kenoby.com/cobli