4. "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.
6. 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.
7. 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.
8. 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.
9. 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.
10.
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.
13. 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.
17. 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.
19. 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
20. 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.
21. 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.
22. 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.
23. 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.
24. 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.