Day 1 Flashcards
Qual o comando para instalar o Docker ?
curl -fsSL https://get.docker.com | bash
Quais são as etapas de instalação do Docker em um ambiente linux Ubuntu ?
1 - Identificação da distribuição do linux
2- Atualização do linux
3- Instalação do módulo apt-transport-https
4- Instalação do módulo ca-certificates
5- Instalação do módulo curl
6 - Instalação da chave da url https://download.docker.com/linux/ubuntu/gpg
7- Adiciona deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable a lista de repositórios
8- Atualização do linux
9- Instalação do docker.ce
Qual comando utilizo para listar os containers ativos ?
docker container list
Qual comando utilizo para listar os containers ativos ou não ?
docker container list -a (–all)
Qual é o passo a passo do comando abaixo?
docker container run hello-world
1 - Docker client se comunica com o docker daemon e avisa que quer rodar um container
2- Docker daemon verifica se a imagem já existe no host
3- Docker daemon faz o download da imagem se ela não existir
4- Docker daemon cria o container de acordo com a imagem informada
Qual comando devo executar para rodar um container Ubuntu e cair no prompt do container ?
docker container run -it ubuntu
Porque ao digitar exit no prompt de um container Ubuntu o container é destruído?
Porque o processo principal de um container Ubuntu é o bash. Ao sair do container o processo bash deixa de existir e o container é finalizado.
Como faço para sair de um container que tem como principal entrypoint o bash sem matar o container ?
ctrl p + q
Após digital ctrl p + q e sair de um container como faço para conectar no prompt do container novamente ?
docker container attach (id) ou (nome)
ou
docker container exec -it (id) ou (nome) bash
Qual comando devo executar para rodar um container em segundo plano ?
docker container run -d (imagem)
Rodei o seguinte comando:
docker container run -d nginx
Como faço para acessar o prompt desse container ?
docker container exec -it (id) ou (nome) bash
Quais são os comandos para parar, iniciar, reiniciar, pausar e unpausar um container ?
docker container stop (id) ou (nome) docker container start (id) ou (nome) docker container restart (id) ou (nome) docker container pause (id) ou (nome) docker container unpause (id) ou (nome)
Fiz a seguinte alteração em um container rodando nginx:
echo “Teste NGINX” > /usr/share/nginx/html/index.html
Supondo que o IP do container seja 172.17.0.2 e rodar do host o comando curl 172.17.0.2 qual será o resultado ?
Teste NGINX
Fiz a seguinte alteração em um container rodando nginx:
echo “Teste NGINX” > /usr/share/nginx/html/index.html
Após essa alteração dei um stop no container do NGINX e rodei o seguinte comando:
docker container run -d nginx
Qual será o resultado do comando curl 172.17.0.2 ?
Será criado um novo container a partir da imagem do nginx.
As alterações feitas no container anterior não são repassadas ao novo container.
Welcome to nginx!
Fiz a seguinte alteração em um container rodando nginx:
echo “Teste NGINX” > /usr/share/nginx/html/index.html
Após essa alteração dei um stop no container do NGINX e sabendo que o id do container é 08e52e697bee rodei o seguinte comando:
docker container start 08e52e697bee
Qual será o resultado do comando curl 172.17.0.2 ?
Teste NGINX
Como faço para mostrar as informações sobre um container ?
docker container inspect (id) ou (nome)
Como faço para mostrar os logs de um container ?
docker container logs (id) ou (nome)
Qual comando devo usar para remover um container ?
docker container rm (id) ou (nome)
O que acontece se eu tentar remover um container em execução com o comando:
docker container rm (id) ou (nome) ?
E se eu quiser remover mesmo assim, como faço?
Error response from daemon: You cannot remove a running container 6d178f062d9f84f05654d70c2376ffc913c4773c8ce3b5fac08efaf8cc8c68bb. Stop the container before attempting removal or force remove
docker container rm –force (id) ou (nome)
Como faço para acompanhar em tempo real os logs de um container ?
docker container logs –follow (id) ou (nome)
Como faço para mostrar a utilização de recursos de um container em real time ?
docker container stats (id) ou (nome)
Como faço para mostrar os processos que estão rodando em um container ?
docker container top (id) ou (nome)
Como faço para limitar em 128Mb de memória um container que rodará a imagem nginx ?
docker container run -d –memory 128M nginx
Como verifico a quantidade de memória que foi alocada a um determinado container ?
docker container inspect (id) ou (nome) | grep Memory
Quais são as informações que a opção stats do comando docker container traz?
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PID
Como faço para limitar em 0,5 de CPUS um container que rodará a imagem nginx ?
docker container run -d –cpus 0.5 nginx
Como verifico a quantidade de CPUS que foi alocada a um determinado container ?
docker container inspect (id) ou (nome) | grep NanoCpus
Ao rodar o comando abaixo:
docker container inspect 6bb3ff626649 | grep NanoCpus
retornou o seguinte:
“NanoCpus”: 500000000,
O que isso quer dizer ?
Um core de CPU contém 1 bilhão de nanocpus.
500.000.000 / 1.000.000.000 = 0,5 core CPUs
Lancei um container com o seguinte comando:
docker container run -d –cpus 1.5 nginx
Qual o máximo de % CPU que a opção stats pode mostrar ?
150%
Como faço para alterar as configurações de um container já em execução ?
docker container update (parametro) (id) ou (nome)
Rodei o comando:
docker container inspect web_app | grep NanoCpus
“NanoCpus”: 0,
O que quer dizer essa reposta ?
O zero indica que não há limite de CPUs que podem ser utilizados nesse container.
Qual a diferença entre um container e uma virtual machine ?
O container se diferencia principalmente das tecnologias de virtualização no ponto em que cada container se reflete em um grupo de processos separados do sistema operacional, mas que reaproveitam a estrutura de software e hardware; por outro lado, as tecnologias de virtualização entregam desde o hardware virtual até o sistema operacional
Quais tecnologias são essenciais no linux para os containers rodarem ?
- namespaces
- cgroups
- netfilter
O que são namespaces ?
O namespace é um recurso do kernel que prove isolamento aos componentes do linux, ele consegue isolar processos, usuários, rede, file system entre outros.
O que são cgroups ?
Um recurso integrado ao kernel que permite ao administrador definir limites de utilização de recursos em qualquer processo do sistema.
Como funciona o operação copy on write ?
Pesquisa nas camadas da imagem o arquivo a ser atualizado. O processo começa na camada mais recente e desce até a camada de base, uma camada de cada vez. Quando os resultados são encontrados, eles são adicionados a um cache para acelerar operações futuras.
Executa uma operação copy_up na primeira cópia do arquivo que for encontrado, para copiar o arquivo para a camada gravável do contêiner.
Quaisquer modificações são feitas nesta cópia do arquivo, e o contêiner não pode ver a cópia somente leitura do arquivo que existe na camada inferior.
Qual a melhor prática para armazenar dados que são alterados com muita frequência?
Os dados devem ser armazenados em volumes, pois temos perda de performance quando arquivos que estão na camada read-only são copiados para a camada gravável. Além disso arquivos na camada gravável são perdidos quando o container é deletado.
Qual recurso do kernel é utilizado para fazer o redirecionamento de rede utilizado pelo containers?
netfilter (iptables)
Quais são os canais de atualização docker engine disponíveis para download ?
- O canal Stable oferece os lançamentos mais recentes para disponibilidade geral.
- O canal de teste fornece pré-lançamentos que estão prontos para teste antes da disponibilidade geral (GA).
- O canal Nightly oferece as compilações mais recentes do trabalho em andamento para o próximo lançamento principal.
Qual comando posso rodar para listar informações sobre o docker engine ?
docker info
Como fazer para o usuário mark possa gerenciar um ambiente com Docker instalado ?
Adicione o usuário mark ao grupo docker.