Docker
Lucas Beletato Nery
[Link]@[Link]
O que temos para hoje?
• O que é Docker
• O que são Containers
• VM vs Docker
• Partes principais do Docker
• Dockerfile
• Comandos Docker
2
O que é Docker?
O Docker é uma tecnologia Open Source que permite criar, executar, testar e implantar
aplicações distribuídas dentro de containers de software.
Ele permite que você empacote um software de uma padronizada para o
desenvolvimento de software, contendo tudo que é necessário para a execução:
código, runtime, ferramentas, bibliotecas, etc.
O Docker permite que você implante aplicações rapidamente, de modo confiável e
estável, em qualquer ambiente.
3
O que são containers?
Os containers são um método de virtualização em nível de sistema operacional que
permite executar uma aplicação e suas dependências em processos com recursos
isolados.
Os containers permitem empacotar facilmente o código, as configurações e as
dependências de uma aplicação em elementos fundamentais que oferecem consistência
ambiental, eficiência operacional, produtividade de desenvolvedores e controle de
versões.
Os containers podem ajudar a garantir rapidez, confiabilidade e consistência de
implantação, independentemente do ambiente de implantação. Além disso, os
containers oferecem um controle mais granular dos recursos, aumentando a eficiência
da infraestrutura.
4
VM vs Docker
VM
• O objetivo desse modelo é compartilhar os recursos físicos entre vários ambientes
isolados, sendo que cada um deles tem sob sua tutela uma máquina inteira, com
memória, disco, processador, rede e outros periféricos, todos entregues via
abstração de virtualização.
Docker
• Esse modelo de virtualização está no nível de sistema operacional, ou seja, ao
contrário da máquina virtual um container não tem visão de uma máquina inteira,
ele é apenas um processo em execução em um kernel compartilhado entre todos
os outros containers.
5
Partes principais do Docker
Docker usa uma arquitetura cliente-servidor. A parte cliente fala com o Docker daemon,
que faz o trabalho pesado de construção, execução e distribuição de seus containers e
imagens Docker, também controla os recursos executados.
6
Docker Compose
O Docker Compose é uma ferramenta para a criação e execução de múltiplos containers de
maneira padronizada e que facilite a comunicação entre eles.
Com o Compose, é possível usar um único arquivo para definir como será o ambiente
de uma aplicação e usando um único comando possível criará e iniciará todos os serviços
definidos.
7
Dockerfile
Docker pode construir imagens automaticamente lendo as instruções do arquivo
Dockerfile. O Dockerfile é um arquivo de texto que contém todos os comandos
necessários para se criar uma imagem, usando o comando docker build podemos então
criar a imagem a partir do Dockerfile.
8
Dockerfile | ENV
Instrução que cria e atribui uma variável de ambiente dentro da imagem. É possível
informar mais de uma label
9
Dockerfile | ADD e COPY
Adiciona ou copia arquivos locais ou que estejam em uma url (no caso do ADD), para
dentro da imagem.
O <dest> é um caminho absoluto, ou um caminho relativo a WORKDIR, caso o diretório
destino não exista, ele será criado.
Se <src> for um diretório, todo o conteúdo do diretório será copiado, incluindo os
metadados do sistema de arquivos.
10
Dockerfile | ADD e COPY
Diferença entre ADD e COPY
• ADD Permite <src> ser um URL
• Se estiver executando um ADD é o <src> é um arquivo em um formato de
compactação reconhecido, o docker irá descompactá-lo e irá copiar os arquivos para o
<dist>
11
Comandos Docker
docker <COMAND> --help
Exibe a forma de execução do comando e seus possíveis parâmetros.
12
Comandos Docker | docker info
docker info
Exibe as informações de execução do docker
13
Comandos Docker | docker build
docker build [OPTIONS] <PATH ou URL>
Criar uma imagem a partir de um Dockerfile, também é possível criar de um Dockerfile
remoto, como em um repositório git no github.
14
Comandos Docker | docker images
docker images [OPTIONS]
Lista as imagens baixadas.
15
Comandos Docker | docker pull
docker pull [OPTIONS] <NAME>[:TAG]
Baixar uma imagem.
16
Comandos Docker | docker inspect
docker inspect <CONTAINER>
Mostra os metadados do container, como os volumes associados, mantenedor etc.
17
Comandos Docker | docker exec
docker exec [OPTIONS] <CONTAINER> <COMMAND> [ARG...]
Executa um comando em um container em execução.
18
Comandos Docker | docker stop
docker stop [OPTIONS] <CONTAINER...>
Para um ou mais containers.
19
Comandos Docker | docker kill
docker kill <CONTAINER…>
Mata um ou mais containers.
20
Comandos Docker | docker rm
docker rm [OPTIONS]
Remove um ou mais containers
21
Comandos Docker | docker ps
docker ps [OPTIONS]
Lista os containers.
22
Comandos Docker | docker logs
docker logs [OPTIONS] <CONTAINER>
Exibe os logs de um container
23
Comandos Docker | docker rmi
docker rmi [OPTIONS] <CONTAINER…>
Remover uma ou mais imagens.
24
Dúvidas?
Lucas Beletato Nery
[Link]@[Link]
Referências
• [Link]
26