SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
2017-03-13
DOCKER - uma visão geral
Michael Granados
Michael
Granados
Desenvolvedor web desde 2006
Designer
Pai de família
Programdor multilinguagem
Curioso por DevOps
Agenda
✤ O que é docker?
✤ O que são contêineres?
✤ Qual a diferença entre máquina física, máquina virtual e
contêineres?
✤ Primeiros passos
✤ Vamos fazer um bolo?
✤ Don’t repeat yourself! (again)
O que é docker?
✤ É a plataforma de contêineres de software mais conhecida no
mundo
✤ Ele permite que os desenvolvedores trabalhem com contêineres
isolados de forma a evitar o problema de “problemas com minha
máquina”
✤ Permite que ambientes complexos sejam levantados e
interligados de forma rápida e dinâmica
✤ Por ser de fácil manutenção, permite uma escalabilidade mais
rápida e flexível
O que são contêineres
✤ São todos os componentes requeridos para a execução de qualquer
trecho de software
✤ Esses componentes ficam isolados e contidos em contêineres, sendo
assim, não são afetados pela execução do código, podendo ser
reutilizado a qualquer momento
✤ Como os contêineres ficam isolados, eles podem ser combinados e
mantidos em versões distintas
✤ Ao contrário das máquinas virtuais, os contêineres não ocupam todo o
espaço, memória, cpu. Ao invés disso, compartilham com a máquina
que está executando o docker
Qual a diferença entre máquina física, máquina virtual e
contêineres?
Máquina física
Arquitetura x86
Sistema Operacional
Aplicação
Qual a diferença entre máquina física, máquina virtual e
contêineres?
Máquina virtual
Arquitetura x86
Sistema Operacional/servidor de máquinas virtuais
Máquina Virtual
Sistema Operacional
Aplicação
Máquina Virtual
Sistema Operacional
Aplicação
Máquina Virtual
Sistema Operacional
Aplicação
Qual a diferença entre máquina física, máquina virtual e
contêineres?
Contêineres
Arquitetura x86
Sistema Operacional
Docker Engine
Aplicação
conteiner 1
conteiner 2
Aplicação 2
conteiner 1
Primeiros passos
✤ docker run [opções] <imagem> [comando]
✤ -v “pasta_no_host:pasta_no_docker” (define/compartilha volumes)
✤ -p “porta_no_host:porta_no_docker” (define/compartilha portas)
✤ -t (virtualiza a sessão)
✤ -i (interativo)
✤ -e (associa uma variável de ambiente)
✤ docker ps [opções]
✤ -a (exibir todos os processos)
✤ -q (exibir somente o hash do processo)
✤ docker images [opções]
✤ docker exec [opções] <instância> <comando>
✤ docker pull image
✤ docker rm
✤ docker rmi
docker ps -qa | xargs docker rm -f
remove todos os processos
docker images -a | xargs docker rmi -f
remove todas as imagens
Vamos fazer um bolo?
✤ Criando o Dockerfile
FROM ubuntu
RUN apt-get update && apt-get install -y curl
ENTRYPOINT curl
✤ Apenas um Dockerfile por pasta
docker build -t [tag da imagem] <pasta>
Vamos fazer um bolo?
✤ FROM - imagem na qual esta imagem se baseia
✤ RUN - executa um determinado comando
✤ COPY - copia arquivos para dentro da imagem
✤ ENTRYPOINT - comando que será precedido ao comando CMD ou
ao comando passado no comando run do docker
✤ EXPOSE - portas que serão expostas pela imagem
✤ CMD - comando principal que será executado se nada for passado
no comando run
Don’t repeat yourself! (again)
✤ O docker guarda cada comando RUN como uma imagem
que pode ser reaproveitada
✤ Aproveite o cache do docker
✤ Reutilize imagens, utilizando FROM
✤ aproveite o http://hub.docker.com
✤ envie suas imagens para um repositório - por exemplo o
próprio http://hub.docker.com ou o AWS ECS
“Não me interessa se roda na sua máquina! Nós não estamos
entregando a sua máquina!”
–Vidiu Platon

Weitere ähnliche Inhalte

Was ist angesagt?

Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 
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
 
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
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
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
 
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 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
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerWaldemar Neto
 

Was ist angesagt? (20)

O que é docker?
O que é docker?O que é docker?
O que é docker?
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma 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
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
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
 
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
 
Docker
DockerDocker
Docker
 
Oficina docker
Oficina dockerOficina docker
Oficina docker
 
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
 
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
 
Docker compose
Docker composeDocker compose
Docker compose
 
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
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e Docker
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 

Andere mochten auch

Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Michael Castillo Granados
 
meetup adopting java8
meetup adopting java8meetup adopting java8
meetup adopting java8Filipe Portes
 
Resultaten serious game who is john galt
Resultaten serious game who is john galtResultaten serious game who is john galt
Resultaten serious game who is john galtRob Oostdam
 
SAPI Solutions for Distribution
SAPI Solutions for DistributionSAPI Solutions for Distribution
SAPI Solutions for DistributionEric Thornell
 
The Street Kids of Calabar: A Punitive Approach is Not Enough
 The Street Kids of Calabar: A Punitive Approach is Not Enough The Street Kids of Calabar: A Punitive Approach is Not Enough
The Street Kids of Calabar: A Punitive Approach is Not EnoughPIND Foundation
 
Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Andrew Rota
 
Iapmei incentivos industria 4.0 apt v4
Iapmei   incentivos industria 4.0 apt v4Iapmei   incentivos industria 4.0 apt v4
Iapmei incentivos industria 4.0 apt v4Pedro Cilínio
 
Doctor, Lawyer, Poker Player, Physicist: The Best Engineers We're Not Competi...
Doctor, Lawyer, Poker Player, Physicist: The Best Engineers We're Not Competi...Doctor, Lawyer, Poker Player, Physicist: The Best Engineers We're Not Competi...
Doctor, Lawyer, Poker Player, Physicist: The Best Engineers We're Not Competi...Carina C. Zona
 
Onde é que nos encontramos para aonde estamos a ir e onde devemos estar
Onde é que nos encontramos para aonde estamos a ir e onde devemos estarOnde é que nos encontramos para aonde estamos a ir e onde devemos estar
Onde é que nos encontramos para aonde estamos a ir e onde devemos estarJorge Moreira
 
専修大学文学部50年小史
専修大学文学部50年小史専修大学文学部50年小史
専修大学文学部50年小史LettersSU
 
Commerce 2.x lessons learned
Commerce 2.x  lessons learnedCommerce 2.x  lessons learned
Commerce 2.x lessons learnedBojan Živanović
 
25 Quotes to Inspire your Operational Excellence Initiatives
25 Quotes to Inspire your Operational Excellence Initiatives25 Quotes to Inspire your Operational Excellence Initiatives
25 Quotes to Inspire your Operational Excellence InitiativesCarla Gregory
 

Andere mochten auch (18)

Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
YouTube Powerpoint
YouTube PowerpointYouTube Powerpoint
YouTube Powerpoint
 
meetup adopting java8
meetup adopting java8meetup adopting java8
meetup adopting java8
 
Resultaten serious game who is john galt
Resultaten serious game who is john galtResultaten serious game who is john galt
Resultaten serious game who is john galt
 
SAPI Solutions for Distribution
SAPI Solutions for DistributionSAPI Solutions for Distribution
SAPI Solutions for Distribution
 
The Street Kids of Calabar: A Punitive Approach is Not Enough
 The Street Kids of Calabar: A Punitive Approach is Not Enough The Street Kids of Calabar: A Punitive Approach is Not Enough
The Street Kids of Calabar: A Punitive Approach is Not Enough
 
Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)
 
Iapmei incentivos industria 4.0 apt v4
Iapmei   incentivos industria 4.0 apt v4Iapmei   incentivos industria 4.0 apt v4
Iapmei incentivos industria 4.0 apt v4
 
Doctor, Lawyer, Poker Player, Physicist: The Best Engineers We're Not Competi...
Doctor, Lawyer, Poker Player, Physicist: The Best Engineers We're Not Competi...Doctor, Lawyer, Poker Player, Physicist: The Best Engineers We're Not Competi...
Doctor, Lawyer, Poker Player, Physicist: The Best Engineers We're Not Competi...
 
DevLOVE仙台の野望
DevLOVE仙台の野望DevLOVE仙台の野望
DevLOVE仙台の野望
 
Par30 led spotlight 12w
Par30 led spotlight 12wPar30 led spotlight 12w
Par30 led spotlight 12w
 
Onde é que nos encontramos para aonde estamos a ir e onde devemos estar
Onde é que nos encontramos para aonde estamos a ir e onde devemos estarOnde é que nos encontramos para aonde estamos a ir e onde devemos estar
Onde é que nos encontramos para aonde estamos a ir e onde devemos estar
 
専修大学文学部50年小史
専修大学文学部50年小史専修大学文学部50年小史
専修大学文学部50年小史
 
Un Kano pour Mammy
Un Kano pour MammyUn Kano pour Mammy
Un Kano pour Mammy
 
Commerce 2.x lessons learned
Commerce 2.x  lessons learnedCommerce 2.x  lessons learned
Commerce 2.x lessons learned
 
25 Quotes to Inspire your Operational Excellence Initiatives
25 Quotes to Inspire your Operational Excellence Initiatives25 Quotes to Inspire your Operational Excellence Initiatives
25 Quotes to Inspire your Operational Excellence Initiatives
 
Los presupuestos públicos en estados y municipios
Los presupuestos públicos en estados y municipiosLos presupuestos públicos en estados y municipios
Los presupuestos públicos en estados y municipios
 
Int64
Int64Int64
Int64
 

Ähnlich wie Docker: uma visão geral

Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginnersRafael Chiavegatto
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldThiago Soares
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaMatheus Fidelis
 
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
 
WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker Pedro Cavalheiro
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
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
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Wallison Marra
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...Renato Groffe
 

Ähnlich wie Docker: uma visão geral (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 - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Olá docker
Olá dockerOlá docker
Olá docker
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorld
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
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
 
WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker
 
Docker
DockerDocker
Docker
 
Vagrant sti
Vagrant stiVagrant sti
Vagrant sti
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
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 Docker
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 

Mehr von Michael Castillo Granados

Design patterns: resolvendo problemas comuns (ruby)
Design patterns: resolvendo problemas comuns (ruby)Design patterns: resolvendo problemas comuns (ruby)
Design patterns: resolvendo problemas comuns (ruby)Michael Castillo Granados
 
Da argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroDa argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroMichael Castillo Granados
 
Da Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtualDa Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtualMichael Castillo Granados
 

Mehr von Michael Castillo Granados (7)

Design patterns de uma vez por todas
Design patterns de uma vez por todasDesign patterns de uma vez por todas
Design patterns de uma vez por todas
 
Design patterns: resolvendo problemas comuns (ruby)
Design patterns: resolvendo problemas comuns (ruby)Design patterns: resolvendo problemas comuns (ruby)
Design patterns: resolvendo problemas comuns (ruby)
 
Transformando o wp em uma loja virtual
Transformando o wp em uma loja virtualTransformando o wp em uma loja virtual
Transformando o wp em uma loja virtual
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Da argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroDa argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguro
 
Da Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtualDa Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtual
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 

Docker: uma visão geral

  • 1. 2017-03-13 DOCKER - uma visão geral Michael Granados
  • 2. Michael Granados Desenvolvedor web desde 2006 Designer Pai de família Programdor multilinguagem Curioso por DevOps
  • 3. Agenda ✤ O que é docker? ✤ O que são contêineres? ✤ Qual a diferença entre máquina física, máquina virtual e contêineres? ✤ Primeiros passos ✤ Vamos fazer um bolo? ✤ Don’t repeat yourself! (again)
  • 4. O que é docker? ✤ É a plataforma de contêineres de software mais conhecida no mundo ✤ Ele permite que os desenvolvedores trabalhem com contêineres isolados de forma a evitar o problema de “problemas com minha máquina” ✤ Permite que ambientes complexos sejam levantados e interligados de forma rápida e dinâmica ✤ Por ser de fácil manutenção, permite uma escalabilidade mais rápida e flexível
  • 5. O que são contêineres ✤ São todos os componentes requeridos para a execução de qualquer trecho de software ✤ Esses componentes ficam isolados e contidos em contêineres, sendo assim, não são afetados pela execução do código, podendo ser reutilizado a qualquer momento ✤ Como os contêineres ficam isolados, eles podem ser combinados e mantidos em versões distintas ✤ Ao contrário das máquinas virtuais, os contêineres não ocupam todo o espaço, memória, cpu. Ao invés disso, compartilham com a máquina que está executando o docker
  • 6. Qual a diferença entre máquina física, máquina virtual e contêineres? Máquina física Arquitetura x86 Sistema Operacional Aplicação
  • 7. Qual a diferença entre máquina física, máquina virtual e contêineres? Máquina virtual Arquitetura x86 Sistema Operacional/servidor de máquinas virtuais Máquina Virtual Sistema Operacional Aplicação Máquina Virtual Sistema Operacional Aplicação Máquina Virtual Sistema Operacional Aplicação
  • 8. Qual a diferença entre máquina física, máquina virtual e contêineres? Contêineres Arquitetura x86 Sistema Operacional Docker Engine Aplicação conteiner 1 conteiner 2 Aplicação 2 conteiner 1
  • 9. Primeiros passos ✤ docker run [opções] <imagem> [comando] ✤ -v “pasta_no_host:pasta_no_docker” (define/compartilha volumes) ✤ -p “porta_no_host:porta_no_docker” (define/compartilha portas) ✤ -t (virtualiza a sessão) ✤ -i (interativo) ✤ -e (associa uma variável de ambiente) ✤ docker ps [opções] ✤ -a (exibir todos os processos) ✤ -q (exibir somente o hash do processo) ✤ docker images [opções] ✤ docker exec [opções] <instância> <comando> ✤ docker pull image ✤ docker rm ✤ docker rmi
  • 10. docker ps -qa | xargs docker rm -f remove todos os processos
  • 11. docker images -a | xargs docker rmi -f remove todas as imagens
  • 12. Vamos fazer um bolo? ✤ Criando o Dockerfile FROM ubuntu RUN apt-get update && apt-get install -y curl ENTRYPOINT curl ✤ Apenas um Dockerfile por pasta docker build -t [tag da imagem] <pasta>
  • 13. Vamos fazer um bolo? ✤ FROM - imagem na qual esta imagem se baseia ✤ RUN - executa um determinado comando ✤ COPY - copia arquivos para dentro da imagem ✤ ENTRYPOINT - comando que será precedido ao comando CMD ou ao comando passado no comando run do docker ✤ EXPOSE - portas que serão expostas pela imagem ✤ CMD - comando principal que será executado se nada for passado no comando run
  • 14. Don’t repeat yourself! (again) ✤ O docker guarda cada comando RUN como uma imagem que pode ser reaproveitada ✤ Aproveite o cache do docker ✤ Reutilize imagens, utilizando FROM ✤ aproveite o http://hub.docker.com ✤ envie suas imagens para um repositório - por exemplo o próprio http://hub.docker.com ou o AWS ECS
  • 15. “Não me interessa se roda na sua máquina! Nós não estamos entregando a sua máquina!” –Vidiu Platon