Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Introdu¸c˜ao ao Docker
O que ´e e porque devo utilizar?
Thiago Almeida thiagoalmeida@ufpa.br
August 31, 2015
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 1/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Pr´e requisitos e Objetivos
Docker
Nenhuma experiˆencia anterior com Docker ser´a
necess´aria.
LINUX
Familiaridade com alguma distribui¸c˜ao Linux
Familiaridade com terminal e linhas de comando.
Objetivos
Entender a estrutura da plataforma Docker.
Conhecer os componentes da plataforma Docker.
Imagens
Contˆeineres
Reposit´orios
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 2/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Agenda
T´opicos abordados
Principais pontos
O que ´e Docker?
Contˆeineres vs M´aquinas Virtuais
Visualiza¸c˜ao sobre a plataforma Docker
Docker Engine
Imagens
Contˆeineres
Registro
Reposit´orios
Introdu¸c˜ao `as Imagens
Iniciando com contˆeineres
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 3/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
O que ´e Docker?
Defini¸c˜ao
Docker ´e uma plataforma para desenvolvimento, envio e
execu¸c˜ao de aplica¸c˜oes utilizando virtualiza¸c˜ao baseada em
contˆeiner. A plataforma Docker ´e composta por algumas
ferramentas e produtos, s˜ao eles:
Docker Engine
Docker Hub
Docker Machine
Docker Swarm
Docker Compose
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 4/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Contˆeineres vs M´aquinas Virtuais
Um pouco de hist´oria
Servidores reais
Antigamente n´os utiliz´avamos um servidor para uma ´unica
aplica¸c˜ao.
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 5/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Contˆeineres vs M´aquinas Virtuais
Um pouco de hist´oria
Problemas que isso causava
Gastava muito tempo no deploy
Alto custo
Desperd´ıcio de recursos
Dif´ıcil para escalar
Dif´ıcil para migrar
Dependˆencia do fabricante
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 6/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Contˆeineres vs M´aquinas Virtuais
Um pouco de hist´oria
Virtualiza¸c˜ao baseada em Hypervisor
Um servidor f´ısico pode conter v´arias aplica¸c˜oes
Cada aplica¸c˜ao roda em uma m´aquina virtual (VM)
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 7/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Contˆeineres vs M´aquinas Virtuais
Um pouco de hist´oria
Vantagens da m´aquina virtual
Melhor aproveitamento dos recursos
Um servidor f´ısico dividido em v´arias m´aquinas virtuais
F´acil de escalar
Limita¸c˜oes da m´aquina virtual
Cada m´aquina virtual requer:
CPU alocada
Armazenamento
Mem´oria RAM
Um sistema operacional inteiro
Quanto mais VMs vocˆe roda, mais recursos vocˆe precisa
Um sistema operacional num guest ´e um desperd´ıcio
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 8/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Contˆeineres vs M´aquinas Virtuais
Introdu¸c˜ao aos contˆeineres
O que s˜ao?
Virtualiza¸c˜ao baseada em contˆeiner usa o kernel do sistema
operacional do host para executar m´ultiplas instˆancias
Cada guest ´e chamado de contˆeiner
Cada contˆeiner possui:
Sistema de arquivos raiz
Processos
Mem´oria
Dispositivos
Pilha de rede
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 9/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Contˆeineres vs M´aquinas Virtuais
Contˆeiner
Visualizando um contˆeiner
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 10/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Contˆeineres vs M´aquinas Virtuais
Contˆeiner vs VM
Vantagens do contˆeiner
Contˆeiner ´e mais leve
N˜ao precisa instalar um SO inteiro
Requer menos CPU, RAM e armazenamento
Um servidor pode rodar mais contˆeineres do que VMs
Maior portabilidade
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 11/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Contˆeineres vs M´aquinas Virtuais
Visualizando as diferen¸cas
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 12/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Docker Engine
O que ´e?
Docker Engine ´e o programa que possibilita os
contˆeineres serem feitos, enviados e executados.
Docker Engine utiliza namespaces e cgroups do Kernel
Linux.
Namespaces nos permitem isolar os contˆeineres nos seus
pr´oprios ambientes.
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 13/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Composi¸c˜ao do Docker Engine
Docker Client e Daemon
Possui a arquitetura Cliente/Servidor
O cliente pega as entradas do usu´ario e `as envia pro
Daemon
O Daemon monta, executa e distribui os contˆeineres.
Cliente e Daemon podem rodar no mesmo host ou em
hosts diferentes.
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 14/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Docker Contˆeineres e Imagens
Imagens
Template somente leitura utilizado para criar contˆeineres
Feita por vocˆe mesmo ou outro usu´arios Docker
Armazenada no Docker Hub ou no seu Registro local
Contˆeineres
Plataforma isolada para a aplica¸c˜ao
Cont´em tudo que precisa para executar a aplica¸c˜ao
Baseado em uma ou mais imagens
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 15/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Docker Registro e Reposit´orio
Registro
Registro ´e onde n´os armazenamos as nossas imagens.
Podemos ter o nosso pr´oprio Registro ou utilizar Registros
p´ublicos como o Docker Hub
Reposit´orios
Dentro do Registro n´os temos os Reposit´orios
Cada Reposit´orio armazena vers˜oes das imagens base
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 16/17
Apresenta¸c˜ao Introdu¸c˜ao Docker, conceitos e termos
Docker Registro e Reposit´orio
Registro
Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 17/17

Introdução à plataforma Docker

  • 1.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Introdu¸c˜ao ao Docker O que ´e e porque devo utilizar? Thiago Almeida thiagoalmeida@ufpa.br August 31, 2015 Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 1/17
  • 2.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Pr´e requisitos e Objetivos Docker Nenhuma experiˆencia anterior com Docker ser´a necess´aria. LINUX Familiaridade com alguma distribui¸c˜ao Linux Familiaridade com terminal e linhas de comando. Objetivos Entender a estrutura da plataforma Docker. Conhecer os componentes da plataforma Docker. Imagens Contˆeineres Reposit´orios Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 2/17
  • 3.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Agenda T´opicos abordados Principais pontos O que ´e Docker? Contˆeineres vs M´aquinas Virtuais Visualiza¸c˜ao sobre a plataforma Docker Docker Engine Imagens Contˆeineres Registro Reposit´orios Introdu¸c˜ao `as Imagens Iniciando com contˆeineres Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 3/17
  • 4.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos O que ´e Docker? Defini¸c˜ao Docker ´e uma plataforma para desenvolvimento, envio e execu¸c˜ao de aplica¸c˜oes utilizando virtualiza¸c˜ao baseada em contˆeiner. A plataforma Docker ´e composta por algumas ferramentas e produtos, s˜ao eles: Docker Engine Docker Hub Docker Machine Docker Swarm Docker Compose Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 4/17
  • 5.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Contˆeineres vs M´aquinas Virtuais Um pouco de hist´oria Servidores reais Antigamente n´os utiliz´avamos um servidor para uma ´unica aplica¸c˜ao. Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 5/17
  • 6.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Contˆeineres vs M´aquinas Virtuais Um pouco de hist´oria Problemas que isso causava Gastava muito tempo no deploy Alto custo Desperd´ıcio de recursos Dif´ıcil para escalar Dif´ıcil para migrar Dependˆencia do fabricante Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 6/17
  • 7.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Contˆeineres vs M´aquinas Virtuais Um pouco de hist´oria Virtualiza¸c˜ao baseada em Hypervisor Um servidor f´ısico pode conter v´arias aplica¸c˜oes Cada aplica¸c˜ao roda em uma m´aquina virtual (VM) Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 7/17
  • 8.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Contˆeineres vs M´aquinas Virtuais Um pouco de hist´oria Vantagens da m´aquina virtual Melhor aproveitamento dos recursos Um servidor f´ısico dividido em v´arias m´aquinas virtuais F´acil de escalar Limita¸c˜oes da m´aquina virtual Cada m´aquina virtual requer: CPU alocada Armazenamento Mem´oria RAM Um sistema operacional inteiro Quanto mais VMs vocˆe roda, mais recursos vocˆe precisa Um sistema operacional num guest ´e um desperd´ıcio Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 8/17
  • 9.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Contˆeineres vs M´aquinas Virtuais Introdu¸c˜ao aos contˆeineres O que s˜ao? Virtualiza¸c˜ao baseada em contˆeiner usa o kernel do sistema operacional do host para executar m´ultiplas instˆancias Cada guest ´e chamado de contˆeiner Cada contˆeiner possui: Sistema de arquivos raiz Processos Mem´oria Dispositivos Pilha de rede Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 9/17
  • 10.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Contˆeineres vs M´aquinas Virtuais Contˆeiner Visualizando um contˆeiner Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 10/17
  • 11.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Contˆeineres vs M´aquinas Virtuais Contˆeiner vs VM Vantagens do contˆeiner Contˆeiner ´e mais leve N˜ao precisa instalar um SO inteiro Requer menos CPU, RAM e armazenamento Um servidor pode rodar mais contˆeineres do que VMs Maior portabilidade Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 11/17
  • 12.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Contˆeineres vs M´aquinas Virtuais Visualizando as diferen¸cas Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 12/17
  • 13.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Docker Engine O que ´e? Docker Engine ´e o programa que possibilita os contˆeineres serem feitos, enviados e executados. Docker Engine utiliza namespaces e cgroups do Kernel Linux. Namespaces nos permitem isolar os contˆeineres nos seus pr´oprios ambientes. Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 13/17
  • 14.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Composi¸c˜ao do Docker Engine Docker Client e Daemon Possui a arquitetura Cliente/Servidor O cliente pega as entradas do usu´ario e `as envia pro Daemon O Daemon monta, executa e distribui os contˆeineres. Cliente e Daemon podem rodar no mesmo host ou em hosts diferentes. Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 14/17
  • 15.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Docker Contˆeineres e Imagens Imagens Template somente leitura utilizado para criar contˆeineres Feita por vocˆe mesmo ou outro usu´arios Docker Armazenada no Docker Hub ou no seu Registro local Contˆeineres Plataforma isolada para a aplica¸c˜ao Cont´em tudo que precisa para executar a aplica¸c˜ao Baseado em uma ou mais imagens Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 15/17
  • 16.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Docker Registro e Reposit´orio Registro Registro ´e onde n´os armazenamos as nossas imagens. Podemos ter o nosso pr´oprio Registro ou utilizar Registros p´ublicos como o Docker Hub Reposit´orios Dentro do Registro n´os temos os Reposit´orios Cada Reposit´orio armazena vers˜oes das imagens base Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 16/17
  • 17.
    Apresenta¸c˜ao Introdu¸c˜ao Docker,conceitos e termos Docker Registro e Reposit´orio Registro Thiago Almeida thiagoalmeida@ufpa.br — Introdu¸c˜ao ao Docker 17/17