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