OqueéDocker?
Consultor/Desenvolvedor
Palestrante
Geradordeconteúdo
gentefina
EU
"Containers docker embrulham parte de um software em
um filesystem completo que contem tudo que ele precisa
para rodar: código, ferramentas de sistemas, bibliotecas -
tudo você pode instalar em um servidor. Isso garante que
sempre vai rodar a mesma coisa independente do ambiente."
Tradução livre da descrição oficial aqui.
e?????
Comoolinuxadministraosprocessos
● Cada processo possui um PID
○ PID = Process Identifier
○ Identificador do processo
● Processos possuem também um atributo chamado PPID
○ PPID = Parent Process Identifier
○ Identifica o PID do processo que pediu ao Kernel para criar o
processo.
● UIDs e GIDS
○ UIDS = User Identification
○ GIDS = Group Identification
○ São usados para fazer a permissão dos usuários.
OCHROOT
● O comanado CHROOT do SO Unix é uma operação que muda o
diretório root do processo corrente e de seus processos
filhos.
● Processos que tem o root alterado não podem acessar
arquivos fora daquele contexto.
CHROOTebindmounts
● Um processo pode ter acesso a diretórios específicos,
podendo ter permissão de Read-Only (somente leitura).
● Podem acessar diretórios como /dev ou /sys por exemplo.
LinuxContainers(LXC)
● O Kernel Linux possui Cgroups
○ Cgroups conseguem isolar o uso de recursos como CPU, Memória, Rede e
etc.
○ Os grupos de processos são separados por um isolamento de namespace.
virtualizações
● Bare Metal
○ O software que administra a virtualização opera diretamente sobre o
hardware como o Xen e VMware.
○ Proporciona um maior isolamento mas tem um alto custo pois cada
maquina ira ter seu próprio Kernel e SO
● Hosted
○ É o caso do VirtualBox que roda em cima de um SO mas igual ao Bare
Metal irão iniciar um ambiente com Kernel e SO próprios.
● LXC
○ Basicamente é uma virtualização em nível de SO.
○ Conseguem rodar sistemas Linux isolados.
○ Compartilham dos recursos do host de controle.
EODOCKER?
Docker
● O docker usava LXC.
● O simbolo de uma baleia levando containers simboliza a
maquina host levando vários serviços.
● O docker tem a missão de facilitar e agilizar o
desenvolvimento de aplicações.
● Containers devem ter somente uma responsabilidade.
MAquinasvirtuais vs Docker
Termoscomuns
● Build
● Imagem
● Container
● Porta
● Link
● Volume
● Registry
Dockerbuild
Build é o processo de construção de uma imagem a partir de
um arquivo chamado Dockerfile que contem instruções.
O Dockerfile é lido de cima para baixo é seus passos são
cacheados para futuros builds.
Dockerfile
Imagensdocker
Imagens docker são arquivos imutáveis que possuem uma lista
de camadas semelhante a um repositório git, elas podem ser
atualizadas e versionadas e servem como base para criar um
container.
● Imagens oficiais
○ Nome e versão
■ Ubuntu:14.04
● Imagens não oficiais
○ Usuario, nome e versão
■ waldemarnt/ubuntu:14.04
Dockercontainers
Containers são binários iniciados a partir de uma imagem
(somente de uma). Eles irão executar o que foi descrito no
build. Containers são descartáveis e não devem ser usados
por muito tempo.
Dockerports
Containers que executam aplicações por exemplo precisam
expor algumas portas na rede para que possam ser acessados.
Quando se inicia um container a partir de uma imagem é
possível dizer qual porta sera.
Dockerlinks
Como containers devem ter somente uma responsabilidade quase
sempre será necessário depender de outros containers com
outras responsabilidades. Com o link é possível fazer com
que eles se encontrem na rede.
Dockervolumes
Containers precisam salvar dados, sincronizar dados externos
e outros tipos de operações. Os volumes são escritos no
file-system. Volumes do tipo data não são deletados quando o
container é removido.
Dockerregistry
Images docker podem ser versionadas e commitadas, são
formadas em forma de camadas incrementais. O docker registry
é o repositório oficial do docker na web onde é possível
hospedar imagens e usar imagens publicas e privadas.
Workflowdedesenvolvimento
CriandoumDockerfile
construindoumdockerfile
listandoimagens
Iniciandoumcontainer
listandocontainersativos
Parandoeiniciandoomesmocontainer
Executandocomandosnocontainer
Sem entrar no container
Entrando no container em modo interavito
PERGUNTAS?
http://walde.co
waldemarnt no twitter e facebook

O que é docker?

  • 1.
  • 2.
  • 4.
    "Containers docker embrulhamparte de um software em um filesystem completo que contem tudo que ele precisa para rodar: código, ferramentas de sistemas, bibliotecas - tudo você pode instalar em um servidor. Isso garante que sempre vai rodar a mesma coisa independente do ambiente." Tradução livre da descrição oficial aqui.
  • 5.
  • 6.
    Comoolinuxadministraosprocessos ● Cada processopossui um PID ○ PID = Process Identifier ○ Identificador do processo ● Processos possuem também um atributo chamado PPID ○ PPID = Parent Process Identifier ○ Identifica o PID do processo que pediu ao Kernel para criar o processo. ● UIDs e GIDS ○ UIDS = User Identification ○ GIDS = Group Identification ○ São usados para fazer a permissão dos usuários.
  • 7.
    OCHROOT ● O comanadoCHROOT do SO Unix é uma operação que muda o diretório root do processo corrente e de seus processos filhos. ● Processos que tem o root alterado não podem acessar arquivos fora daquele contexto.
  • 8.
    CHROOTebindmounts ● Um processopode ter acesso a diretórios específicos, podendo ter permissão de Read-Only (somente leitura). ● Podem acessar diretórios como /dev ou /sys por exemplo.
  • 9.
    LinuxContainers(LXC) ● O KernelLinux possui Cgroups ○ Cgroups conseguem isolar o uso de recursos como CPU, Memória, Rede e etc. ○ Os grupos de processos são separados por um isolamento de namespace.
  • 11.
    virtualizações ● Bare Metal ○O software que administra a virtualização opera diretamente sobre o hardware como o Xen e VMware. ○ Proporciona um maior isolamento mas tem um alto custo pois cada maquina ira ter seu próprio Kernel e SO ● Hosted ○ É o caso do VirtualBox que roda em cima de um SO mas igual ao Bare Metal irão iniciar um ambiente com Kernel e SO próprios. ● LXC ○ Basicamente é uma virtualização em nível de SO. ○ Conseguem rodar sistemas Linux isolados. ○ Compartilham dos recursos do host de controle.
  • 12.
  • 13.
    Docker ● O dockerusava LXC. ● O simbolo de uma baleia levando containers simboliza a maquina host levando vários serviços. ● O docker tem a missão de facilitar e agilizar o desenvolvimento de aplicações. ● Containers devem ter somente uma responsabilidade.
  • 14.
  • 16.
    Termoscomuns ● Build ● Imagem ●Container ● Porta ● Link ● Volume ● Registry
  • 17.
    Dockerbuild Build é oprocesso de construção de uma imagem a partir de um arquivo chamado Dockerfile que contem instruções. O Dockerfile é lido de cima para baixo é seus passos são cacheados para futuros builds.
  • 18.
  • 19.
    Imagensdocker Imagens docker sãoarquivos imutáveis que possuem uma lista de camadas semelhante a um repositório git, elas podem ser atualizadas e versionadas e servem como base para criar um container. ● Imagens oficiais ○ Nome e versão ■ Ubuntu:14.04 ● Imagens não oficiais ○ Usuario, nome e versão ■ waldemarnt/ubuntu:14.04
  • 20.
    Dockercontainers Containers são bináriosiniciados a partir de uma imagem (somente de uma). Eles irão executar o que foi descrito no build. Containers são descartáveis e não devem ser usados por muito tempo.
  • 21.
    Dockerports Containers que executamaplicações por exemplo precisam expor algumas portas na rede para que possam ser acessados. Quando se inicia um container a partir de uma imagem é possível dizer qual porta sera.
  • 22.
    Dockerlinks Como containers devemter somente uma responsabilidade quase sempre será necessário depender de outros containers com outras responsabilidades. Com o link é possível fazer com que eles se encontrem na rede.
  • 23.
    Dockervolumes Containers precisam salvardados, sincronizar dados externos e outros tipos de operações. Os volumes são escritos no file-system. Volumes do tipo data não são deletados quando o container é removido.
  • 24.
    Dockerregistry Images docker podemser versionadas e commitadas, são formadas em forma de camadas incrementais. O docker registry é o repositório oficial do docker na web onde é possível hospedar imagens e usar imagens publicas e privadas.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
    Executandocomandosnocontainer Sem entrar nocontainer Entrando no container em modo interavito
  • 34.