Day 1 Flashcards

1
Q

Qual o comando para instalar o Docker ?

A

curl -fsSL https://get.docker.com | bash

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são as etapas de instalação do Docker em um ambiente linux Ubuntu ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qual comando utilizo para listar os containers ativos ?

A

docker container list

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qual comando utilizo para listar os containers ativos ou não ?

A

docker container list -a (–all)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual é o passo a passo do comando abaixo?

docker container run hello-world

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qual comando devo executar para rodar um container Ubuntu e cair no prompt do container ?

A

docker container run -it ubuntu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Porque ao digitar exit no prompt de um container Ubuntu o container é destruído?

A

Porque o processo principal de um container Ubuntu é o bash. Ao sair do container o processo bash deixa de existir e o container é finalizado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Como faço para sair de um container que tem como principal entrypoint o bash sem matar o container ?

A

ctrl p + q

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Após digital ctrl p + q e sair de um container como faço para conectar no prompt do container novamente ?

A

docker container attach (id) ou (nome)

ou

docker container exec -it (id) ou (nome) bash

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qual comando devo executar para rodar um container em segundo plano ?

A

docker container run -d (imagem)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Rodei o seguinte comando:

docker container run -d nginx

Como faço para acessar o prompt desse container ?

A

docker container exec -it (id) ou (nome) bash

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quais são os comandos para parar, iniciar, reiniciar, pausar e unpausar um container ?

A
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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

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 ?

A

Teste NGINX

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

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 ?

A

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!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

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 ?

A

Teste NGINX

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Como faço para mostrar as informações sobre um container ?

A

docker container inspect (id) ou (nome)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Como faço para mostrar os logs de um container ?

A

docker container logs (id) ou (nome)

18
Q

Qual comando devo usar para remover um container ?

A

docker container rm (id) ou (nome)

19
Q

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?

A

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)

20
Q

Como faço para acompanhar em tempo real os logs de um container ?

A

docker container logs –follow (id) ou (nome)

21
Q

Como faço para mostrar a utilização de recursos de um container em real time ?

A

docker container stats (id) ou (nome)

22
Q

Como faço para mostrar os processos que estão rodando em um container ?

A

docker container top (id) ou (nome)

23
Q

Como faço para limitar em 128Mb de memória um container que rodará a imagem nginx ?

A

docker container run -d –memory 128M nginx

24
Q

Como verifico a quantidade de memória que foi alocada a um determinado container ?

A

docker container inspect (id) ou (nome) | grep Memory

25
Q

Quais são as informações que a opção stats do comando docker container traz?

A
CONTAINER ID
NAME
CPU %
MEM USAGE / LIMIT
MEM %
NET I/O
BLOCK I/O
PID
26
Q

Como faço para limitar em 0,5 de CPUS um container que rodará a imagem nginx ?

A

docker container run -d –cpus 0.5 nginx

27
Q

Como verifico a quantidade de CPUS que foi alocada a um determinado container ?

A

docker container inspect (id) ou (nome) | grep NanoCpus

28
Q

Ao rodar o comando abaixo:

docker container inspect 6bb3ff626649 | grep NanoCpus

retornou o seguinte:

“NanoCpus”: 500000000,

O que isso quer dizer ?

A

Um core de CPU contém 1 bilhão de nanocpus.

500.000.000 / 1.000.000.000 = 0,5 core CPUs

29
Q

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 ?

A

150%

30
Q

Como faço para alterar as configurações de um container já em execução ?

A

docker container update (parametro) (id) ou (nome)

31
Q

Rodei o comando:

docker container inspect web_app | grep NanoCpus

“NanoCpus”: 0,

O que quer dizer essa reposta ?

A

O zero indica que não há limite de CPUs que podem ser utilizados nesse container.

32
Q

Qual a diferença entre um container e uma virtual machine ?

A

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

33
Q

Quais tecnologias são essenciais no linux para os containers rodarem ?

A
  • namespaces
  • cgroups
  • netfilter
34
Q

O que são namespaces ?

A

O namespace é um recurso do kernel que prove isolamento aos componentes do linux, ele consegue isolar processos, usuários, rede, file system entre outros.

35
Q

O que são cgroups ?

A

Um recurso integrado ao kernel que permite ao administrador definir limites de utilização de recursos em qualquer processo do sistema.

36
Q

Como funciona o operação copy on write ?

A

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.

37
Q

Qual a melhor prática para armazenar dados que são alterados com muita frequência?

A

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.

38
Q

Qual recurso do kernel é utilizado para fazer o redirecionamento de rede utilizado pelo containers?

A

netfilter (iptables)

39
Q

Quais são os canais de atualização docker engine disponíveis para download ?

A
  • 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.
40
Q

Qual comando posso rodar para listar informações sobre o docker engine ?

A

docker info

41
Q

Como fazer para o usuário mark possa gerenciar um ambiente com Docker instalado ?

A

Adicione o usuário mark ao grupo docker.