Docker Flashcards
Qual a solução que o Docker traz?
- Execução de cada componente da Aplicação em um container separado.
- Cada Container possui suas Libs/Deps
- ## Tudo em uma mesma VM/SO, mas em ambientes(containers) separados.
É possível instalar o Docker em uma máquina com Windows, e executar containers com Linux.
CORRETO.
Para isso utiliza-se:
WSL ou Docker Desktop
Vantagens do Container em relação a uma VM.
- Baixa utilização de Recursos. (Apenas uma pequena parte do Kernel)
- Baixo consumo de Disco(MB).
- Inicialização(segundos)
Um container pode ser criado em uma VM.
CORRETO.
Por exemplo em uma instância EC2 podem ser criados centenas ou milhares de containers.
Docker Hub
Repositório público do Docker com muitas aplicações (Imagens) disponíveis.
Quais imagens podem ser obtidas no Docker hub?
SO’s, BD’s, Serviços, ferramentas mais utilizadas. Após instalar o Docker, escolha as imagens e execute o comando do Docker. Ex: Docker run ubuntu/ Docker run node/ Docker run mysql
Imagem x Container
Imagem = Pacote / template
Imagem => Usada para criar um ou mais Containers.
Container => Instâncias das imagens executadas de forma isolada.
Qual a finalidade do Dockerfile?
Criar as Imagens das aplicações. Assim, a imagem pode ser executada em qualquer host.
O principal objetivo do Docker é…
empacotar e Containerizar aplicações para serem implementados em qualquer lugar a qualquer momento
Edições do Docker
Community Edition (free)
Enterprise Edition (paga)
O que faz o comando docker run
Executa um container a partir de uma imagem.
docker ps
lista todos os containers em execução.
docker ps -a
lista TODOS os containers
docker ps -f status=exited
permite filtrar containers pelo status
docker stop container_id ou container_name
Para um container em execução.
docker rm container_id ou container_name
remove containers com status: stopped ou exited
docker kill container_id ou container_name
mata containers com status: stopped ou exited
docker images
lista as imagens disponíveis (local)
docke rmi image_id(curto ou longo), tags ou digest
Usado para remover/deletar imagens.
OBS: Vc deve garantir que NENHUM CONTAINER esteja atrelado à imagem.
docker pull image
Download de uma imagem.
Nomeando containers
docker run -d –name container-name image:tag
Expondo/Mapeando portas em containers
docker run -d -p 3000:80 –name my-ctr nginx:mainline:alpine
Docker Inspect
Serve para checar detalhes dos containers.
docker inspect container_id OU
docker inspect container_name
Docker Logs
Lista os Logs de um container em execução
docker logs container_id OU
docker logs container_name
Docker cheat sheet
manual com comandos do Docker.
docker stop $(docker ps -q)
$(docker ps -q) - coloca como variável todos os ctr em execução.
para que sejam parados todos de uma vez - docker stop
Removendo ctrs parados
Primeiro busque pelos ctrs parados:
docker ps -aq
Depois execute o comando rm tendo como variável a pesquisa anterior:
docker rm $(docker ps -aq)
O que é preciso para criar Imagens?
Dockerfile + Docker Build = Imagens
O que é o DockerFile?
Arquivo de texto(Instruções + argumentos) simples com todas as instruções para implantação de uma aplicação:
Nele temos:
- Base Image
- Base Directory
- Commands
- Application Port
- Files
- Entrypoint
Instruções sempre iniciam com FROM e a ordem faz a diferença.
Docker Layer(camada)
- As imagens são criadas pelo comando ‘docker build’.
- Para cada linha das instruções, uma nova ‘layer’ é criada em cache.
- cada layer armazena apenas as alterações da camada anterior.
Listando volumes no Docker
docker volume ls
Inspecionando volumes no Docker
docker volume inspect meuvolume
Criando e removendo bkps de volumes no Docker
criando - docker volume create bkp-vol
removendo - docker volume rm bkp-vol
Na estrutura do Yaml, quais os três tipos de bloco de construção?
Chave/Valor
Array/Lista
Dictionary/Map
Yaml - Exemplo de par Chave/Valor
Key: Value
Fruit: Pineapple
Yaml - Exemplo de
Array/Lista
Key:
- Value1
- Value2
Country
- Portugal
- Senegal
Yaml - Exemplo de Dictionary/Map
Key:
- Key: value
- Key: value
AWS:
networking: VPC
compute: EC2
AZURE:
networking: VNET
compute: VM
Estrutura do Yaml
- Case Sensitive
- o final da linha indica o final de uma instrução
- Sugerido para INDENTAÇÃO - 2 ESPAÇOS.
- # para inserir comentários.
Como validar o Yaml file?
http://www.yamllint.com
O VScode tbm tem extensões que fazem a validação.
O que é o Docker Compose?
- Ferramenta que executa aplicativos Docker em vários containers.
- O arquivo yaml é usado para configurar os serviços de uma aplicação.
- Com um único comando (docker compose up) todos os serviços de uma aplicação são criados e iniciados.
docker compose build - Instrui o Docker a criar uma imagem com base…
no local do código da aplicação
Comandos:
docker compose up
inicia o compose
Comandos:
docker compose up -d
inicia o compose no modo dettached
Comandos:
docker compose down
para o compose
Comandos:
docker compose ps
Checa os componentes do compose (containers, services)
O que é Orquestração de Containers?
Conjunto de ferramentas e scripts para automatizar a implementação, gerenciamento, escalonamento e as redes dos containers. O Swarm é a solução da Docker para fazer isso.
Cite 4 soluções para orquestração de containers?
Kubernets
Swarm(Docker)
Openshift
Rancher
Como funciona o Docker Swarm?
Ele combina máquinas Docker em um único Cluster Swarm e distribui a aplicação em máquinas Docker separadas(Alta Disponibilidade e Balanceamento de carga).
Análise tática do Docker Swarm
suponha que em um haja um cluster de 4 VMs/Server.
Uma será definida como Manager com o comando docker swarm init
e devolverá um token.
As demais máquinas serão workers, entrando no cluster com o comando docker swarm join + token devolvido pela manager.
Qual comando da VM manager é utilizado para recuperar o Token para que as workers sejam adicionadas?
docker swarm join-token manager
Qual comando da VM manager é utilizado para listar os nós?
docker swarm node ls
Qual comando da VM manager é utilizado para criar um serviço com 3 réplicas?
docker service create –name nginx-swarm –replicas 3 -p 80:80 nginx
É prática recomendada não ter…
carga de trabalho no Nó da VM manager.
Qual comando da VM manager é utilizado para listar os serviços?
docker service ls
Qual comando da VM manager é utilizado para inspecionar os serviços?
docker service inspect iddoserviço
Qual comando da VM manager é utilizado para listar containers de serviço de swarm?
docker service ps iddoserviço
Qual comando de uma VM WORKER é utilizado para
que a mesma deixe de fazer parte de um swarm?
docker swarm leave
Qual comando de uma VM manager é utilizado para
que a mesma deixe de fazer parte de um swarm?
docker swarm leave -f
CUIDADO, POIS ISSO QUEBRARÁ O SWARM.
Qual comando da VM manager é utilizado para remover nós de uma swarm?
docker node rm iddonó.
OBS: O NÓ DEVE ESTAR COM STATUS DOWN
Qual comando da VM manager é utilizado para remover serviços de uma swarm?
docker service rm iddoserviço
Qual comando da VM manager é utilizado para que a mesma pare de receber/executar tarefas?
docker node update –availability drain iddonó
Qual comando da VM manager é utilizado para escalar serviços?
docker scale nomedoserviço=qtdereplicas
Qual comando da VM manager é utilizado para atualizar a imagem de um serviço?
docker service update –image versaodaimagem iddoserviço
Qual comando da VM manager é utilizado para conectar a um serviço de rede?
docker service update –network-add nomedarede iddoserviço
PARA ISSO FUNCIONAR, É NECESSÁRIA UMA REDE DO TIPO OVERLAY.
Amazon ECR(Elastic CONTAINER REGISTRY)
Serviço de repositório privado, altamente disponível e seguro que facilita
o ARMAZENAMENTO e o GERENCIAMENTO de imagens de containers Docker.
Amanzon ECS(Elastic CONTAINER SERVICE)
Serviço de ORQUESTRAÇÃO DE CONTAINERS altamente escalável e de alto desempenho
para EXECUÇÃO DE CONTAINERS DOCKER na AWS.