---
# System prepended metadata

title: Docker e Kubernetes

---

# Docker e Kubernetes
### Docker
Veio como solução para o problema funciona na minha máquina, mas não na do testador.
causa: Ambiente Configurado de maneira diferente, path interferindo, etc ...
Uma solução alternativa é o uso de máquinas virtuais.

Vem como ponta de lança para a metodologia DevOps, sendo uma ferramenta muito interessante para tal.
Uma feramenta para aautomatizar o deploy(Lançamento) de aplicações assim podendo funcionar em diferentes ambientes.

Assim você pode rodar diferentes amientes sem conflitar, exemplo Rodando flask e rails sem conflitar o ambiente, ou versões diferentes para tarefas diferentes, sem se preocupar com isso.

- Docker usa uma arquitetura cliente-servidor
- Docker engine é a base que vem instalada na maquina para buildar e rodar containers usando os componentes e os services



| CLiente(Docker CLI)(Envia comandos para a api que ela se comunica com o docker daemon) | <-- | Api Rest |--> | Docker Daemon(Server)(Recebe as chamadas e assim responde elas) |
| -------- | -------- | -------- |-------- | -------- |


#### Componentes do docker

- Docker client e server:
1. Docker client: é acessado via terminal e assim roda o docker daemon e o registro
- Docker images:é um template que assim irá gerar um container de algo específico
Ex: Docker container ```Docker container create[OPTIONS] IMAGE [COMMAND][ARG...]```
- Docker containers:É um software executávelque inclui aplicação e as dependênias, rodando em um Sistema operacional com outros containers.
- Docker registry: é um repositório open source que pode ser utilizado para hospedar e distribuir suas imagens, o docker tem o seu próprio que se chama docker Hub, pull e push são comandos comuns: Docker pull <image><tag>:pulls an image from DTR


#### Maquinas virtuais vs Docker


| Critérios | Máquina virtuais | Docker |
| -------- | -------- | -------- |
| Apoio no SO    | Ocupa muito espaço de memória     | Ocupa menos espaço     |
| Tempo de Boot     | Demorado     | Curto |
| Performance     | Rodar múltiplas máquinas virtuais tornará uma performance instável    | Conteiners trabalham em excelente performance quando apresentam um mecanismo de docker único     |
| Escalabilidade     | Difícil para escalar     | Fácilmente escalável     |
| Eficiência   | Baixa eficiência     | Alta eficiência     |
| Portabilidade| Exigem algumas tarefas para garantir a portabiliddade entre diferente plataformas     | Fácilmente portável |
| Alocação de espaço   | Volumes de dados não podem ser compartilhados | Volume de daos podem sem compartilhados e reusados em inúmeros containers |