Title: Desenvolvimento de Software / Docker
Tags: Desenvolvimento_de_Software Resumo lembrando
On every note of this deck, unless a note says otherwise:
link: https://documentacao.online/estudos/rfhs.html

front: (FCC/TRT 22/2022) O Docker tornou muito mais fácil para os desenvolvedores entender e usar a tecnologia de contêineres. Para isso, oferece diversos recursos ou ferramentas, dentre as quais encontram-se:
I. Ferramenta de clustering e scheduling para contêineres do Docker, que permite que os administradores e desenvolvedores de TI possam estabelecer e gerenciar um cluster de nós do Docker como um único sistema virtual.
II. Reúne instruções necessárias para construir uma imagem de contêiner.
III. Aplicativo para plataforma Mac ou Windows que permite criar e compartilhar microsserviços e containerized applications. Inclui diversas ferramentas como o cliente Docker, o Docker Compose, o Docker Content Trust, o Kubernetes e o Credential Helper.
Os itens I, II e III correspondem, correta e respectivamente, a
a) Docherd – Docker Compose – Docker Hub.
b) Docker Engine – Docker Compose – Docker Desktop.
c) Docker Build – Docherd – Docker Swam.
d) Docker Engine – Dockerfile – Docker Hub.
e) Docker Swarm – Dockerfile – Docker Desktop.
response: Alternativa E
comment: Vamos analisar cada um dos itens. I. A ferramenta responsável por fazer o clustering e scheduling, atividades que fazem parte da orquestração de contêineres, é o Docker Swarm. II. As instruções são reunidas no Dockerfile. III. O aplicativo que congrega todos esses objetos do docker é o Docker Desktop. Portanto, correta a letra E. (Gabarito: Letra E)
title: Docker
Other fields (not shown on cards):
back: Alternativa E - Vamos analisar cada um dos itens. I. A ferramenta responsável por fazer o clustering e scheduling, atividades que fazem parte da orquestração de contêineres, é o Docker Swarm. II. As instruções são reunidas no Dockerfile. III. O aplicativo que congrega todos esses objetos do docker é o Docker Desktop. Portanto, correta a letra E. (Gabarito: Letra E)

front: (FGV/SEFAZ AM/2022) A plataforma Docker pode criar imagens automaticamente, executando as instruções de um arquivo Dockerfile. A primeira instrução presente em um Dockerfile é denominada
a) ADD.
b) RUN.
c) FROM.
d) EXPOSE.
e) WORKDIR.
response: Alternativa C
comment: O FROM é a primeira instrução mandatória do dockerfile, em que definimos uma imagem padrão para base da criação. Cabe ressaltar um comando opcional que pode aparecer antes do FROM, que é o ARG. Como o ARG não estava nas alternativas da questão, nos coube optar pela alternativa com o primeiro comando obrigatório. Portanto, correta a letra C. Aliás, na lista que lhe passei, os comandos já estão em ordem.(Gabarito: Letra C)
title: Docker
Other fields (not shown on cards):
back: Alternativa C - O FROM é a primeira instrução mandatória do dockerfile, em que definimos uma imagem padrão para base da criação. Cabe ressaltar um comando opcional que pode aparecer antes do FROM, que é o ARG. Como o ARG não estava nas alternativas da questão, nos coube optar pela alternativa com o primeiro comando obrigatório. Portanto, correta a letra C. Aliás, na lista que lhe passei, os comandos já estão em ordem.(Gabarito: Letra C)

front: (CEBRASPE/DPE RO/2022) Um arquivo do tipo Dockerfile contém as configurações de um contêiner; para que seja possível, no final, executar esse contêiner, deve ser usado o comando
a) docker os.
b) docker exec.
c) docker build.
d) docker volume.
e) docker image.
response: Alternativa C
comment: Um pouco de imprecisão – não é o contêiner em si que está sendo executado, e sim a imagem. Mas, com essa licença poética, o comando responsável por executar (criar) a imagem de fato é o docker build. Quanto aos outros comandos: • docker os – esse comando não existe. O que existe é docker ps, que lista os contêineres em execução no sistema • docker exec – executa um comando dentro de um contêiner em execução • docker volume – gerencia os volumes Docker, mecanismos usados para persistir os dados gerados pelo contêiner • docker imagem – usado para gerenciar as imagens Docker no sistema Sendo assim, correta a letra C. (Gabarito: Letra C)
title: Docker
Other fields (not shown on cards):
back: Alternativa C - Um pouco de imprecisão – não é o contêiner em si que está sendo executado, e sim a imagem. Mas, com essa licença poética, o comando responsável por executar (criar) a imagem de fato é o docker build. Quanto aos outros comandos: • docker os – esse comando não existe. O que existe é docker ps, que lista os contêineres em execução no sistema • docker exec – executa um comando dentro de um contêiner em execução • docker volume – gerencia os volumes Docker, mecanismos usados para persistir os dados gerados pelo contêiner • docker imagem – usado para gerenciar as imagens Docker no sistema Sendo assim, correta a letra C. (Gabarito: Letra C)

front: (FCC/TRT 18/2023) Um técnico deseja usar o Keycloak no Docker, instalado e em condições ideais. I 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:20.0.0 start-dev Para iniciar o Keycloak exposto na porta local 8080, criando um usuário inicial admin, com senha admin, a lacuna I deve ser preenchida por:
a) docker run -v
b) docker container start on port
c) docker run -p
d) docker start --port
e) docker container run -d port
response: Alternativa C
comment: Queremos criar um contêiner, a partir de uma imagem, que exponha a porta local 8080 para a porta 8080 do contêiner. Para isso, precisaremos substituir a parte inicial pelo comando de deploy SHELL docker run -d -p 8088:3000 --name welcome-to-docker welcome-to-docker de contêiner, com a opção de publish para a pota 8080 – da seguinte forma: docker run -p.(Gabarito: Letra C)
title: Docker
Other fields (not shown on cards):
back: Alternativa C - Queremos criar um contêiner, a partir de uma imagem, que exponha a porta local 8080 para a porta 8080 do contêiner. Para isso, precisaremos substituir a parte inicial pelo comando de deploy SHELL docker run -d -p 8088:3000 --name welcome-to-docker welcome-to-docker de contêiner, com a opção de publish para a pota 8080 – da seguinte forma: docker run -p.(Gabarito: Letra C)

front: (FCC/MPE PB/2023) Considere um ambiente em que o Docker esteja instalado e funcionando em condições ideais. Uma Analista digitou os seguintes comandos:
$ docker container create -i -t --name mppbcontainer alpine
$ docker container start --attach -i mppbcontainer
O comando que seria equivalente aos dois comandos acima é:
a) $ docker run -rm --name mppbcontainer/alpine
b) $ docker run -it --name mppbcontainer alpine
c) $ docker container create && start --name mppbcontainer alpine
d) $ docker exec -i -t --name mppbcontainer//alpine
e) $ docker exec container --name mppbcontainer alpine
response: Alternativa B
comment: Questão difícil! Vamos lá, precisamos primeiro entender o que envolve os dois primeiros comandos. $ docker container create -i -t --name mppbcontainer alpine docker container create → o comando “ container create” é uma forma de criarmos um contêiner sem iniciá-lo (ao contrário do run, que cria e roda automaticamente). Não se preocupe com os comandos, teremos um apanhado para vermos todos os comandos relevantes para prova no final da aula. -i → indica que o contêiner será iniciado no modo interativo. Com isso, o terminal do contêiner será mantido aberto após a criação, permitindo a interação com ele. -t → aloca um pseudo-terminal TTY para o contêiner, comando necessário para manter o terminal interativo --name mppbcontainer → da um nome específico ao contêiner alpine → indica a imagem que será usada para criar o contêiner $ docker container start --attach -i mppbcontainer docker container start → inicia um contêiner previamente criado --atach → indica que o terminal do contêiner deve ser anexado ao terminal atual do host. Isso aponta que todas as interações de CLI do contêiner serão redirecionadas ao terminal do sistema operacional host. -i → inicia o contêiner no modo interativo mppbcontainer → o nome do contêiner que desejamos iniciar Podemos congregar esses dois códigos um para criar o contêiner e outro para rodá-lo, com o comando docker run. Precisamos passar como parâmetro o terminal interativo, o que pode ser feito de forma separada (-i -t) ou agregada (-it). Por fim, indicamos o nome mppbcontainer e a imagem (alpine) que queremos. O comando fica assim: $docker run -it --name mppbcontainer alpine Correta, portanto, a letra B. (Gabarito: Letra B)
title: Docker
Other fields (not shown on cards):
back: Alternativa B - Questão difícil! Vamos lá, precisamos primeiro entender o que envolve os dois primeiros comandos. $ docker container create -i -t --name mppbcontainer alpine docker container create → o comando “ container create” é uma forma de criarmos um contêiner sem iniciá-lo (ao contrário do run, que cria e roda automaticamente). Não se preocupe com os comandos, teremos um apanhado para vermos todos os comandos relevantes para prova no final da aula. -i → indica que o contêiner será iniciado no modo interativo. Com isso, o terminal do contêiner será mantido aberto após a criação, permitindo a interação com ele. -t → aloca um pseudo-terminal TTY para o contêiner, comando necessário para manter o terminal interativo --name mppbcontainer → da um nome específico ao contêiner alpine → indica a imagem que será usada para criar o contêiner $ docker container start --attach -i mppbcontainer docker container start → inicia um contêiner previamente criado --atach → indica que o terminal do contêiner deve ser anexado ao terminal atual do host. Isso aponta que todas as interações de CLI do contêiner serão redirecionadas ao terminal do sistema operacional host. -i → inicia o contêiner no modo interativo mppbcontainer → o nome do contêiner que desejamos iniciar Podemos congregar esses dois códigos um para criar o contêiner e outro para rodá-lo, com o comando docker run. Precisamos passar como parâmetro o terminal interativo, o que pode ser feito de forma separada (-i -t) ou agregada (-it). Por fim, indicamos o nome mppbcontainer e a imagem (alpine) que queremos. O comando fica assim: $docker run -it --name mppbcontainer alpine Correta, portanto, a letra B. (Gabarito: Letra B)

front: (VUNESP/CM FERNANDÓPOLIS/2022) Um dos recursos utilizados para o gerenciamento de contêineres Docker são os comandos inseridos por meio da interface de linha de comando (Docker CLI). O comando utilizado para listar os contêineres que estão sendo executados e informações relacionadas a estes é o:
a) docker ps
b) docker rm
c) docker node
d) docker inspect
e) docker search
response: Alternativa A
comment: Para verificarmos os contêineres que estão sendo executados, usamos o comando docker ps.(Gabarito: Letra A)
title: Docker
Other fields (not shown on cards):
back: Alternativa A - Para verificarmos os contêineres que estão sendo executados, usamos o comando docker ps.(Gabarito: Letra A)

front: (COMPERVE/TJ RN/2020) Os volumes são mecanismos utilizados para persistir os dados gerados e usados pelos containers do Docker. Embora as montagens de ligação dependam da estrutura de diretórios da máquina host, os volumes são completamente gerenciados pelo Docker. Considerando que um analista queira criar um volume de nome my-volume dentro de um docker, ele deve executar o comando
a) docker volume create my-volume
b) docker create volume my-volume
c) docker run create volume my-volume
d) docker create run volume my-volume
response: Alternativa A
comment: Para criarmos um volume dentro de determinado contêiner, usamos o comando docker volume create – no caso da questão, como queremos o nome my-volume, o comando será docker volume create my-volume. (Gabarito: Letra A)
title: Docker
Other fields (not shown on cards):
back: Alternativa A - Para criarmos um volume dentro de determinado contêiner, usamos o comando docker volume create – no caso da questão, como queremos o nome my-volume, o comando será docker volume create my-volume. (Gabarito: Letra A)

front: (FGV/TRT 16/2022) Docker é uma plataforma que permite criar e compartilhar aplicativos e microsserviços em contêineres. O comando utilizado para executar um contêiner novo é o
a) docker composes.
b) docker create.
c) docker build.
d) docker exec.
e) docker run.
response: Alternativa E
comment: Temos dois comandos que podem executar um contêiner novo: • docker run – cria um contêiner a partir de uma imagem, e o inicializa • docker start – inicia um contêiner existente Nesse sentido, o único dos comandos que aparece na questão é o da letra E, que é nosso gabarito.(Gabarito: Letra E)
title: Docker
Other fields (not shown on cards):
back: Alternativa E - Temos dois comandos que podem executar um contêiner novo: • docker run – cria um contêiner a partir de uma imagem, e o inicializa • docker start – inicia um contêiner existente Nesse sentido, o único dos comandos que aparece na questão é o da letra E, que é nosso gabarito.(Gabarito: Letra E)

front: (FGV/TJ RN/2023) A analista Maria gerencia a aplicação WebJus. A WebJus requer a execução de dois containers Docker que necessitam de comunicação entre si. No entanto, para fins de balanceamento de carga, cada container da WebJus foi alocado em um servidor diferente. A fim YAML services:
app1:
image: nginx:latest
networks:
- my_overlay_network networks: my_overlay_network:
driver: overlay
driver_opts:
encrypted: "true"
de configurar a comunicação entre os containers da WebJus de forma simples, Maria criou a rede Docker NetJus, que é capaz de conectar containers rodando em servidores diferentes. A NetJus utiliza o driver de rede Docker:
a) host;
b) ipvlan;
c) bridge;
d) overlay;
e) macvlan.
response: Alternativa D
comment: Temos que cada contêiner está em um servidor diferente – portanto, cada contêiner WebJus se comunica com um daemon diferente. Para permitir comunicação entre daemons diferentes (e, consequentemente, entre servidores e nós), precisamos usar a configuração do tipo overlay.(Gabarito: Letra D)
title: Docker
Other fields (not shown on cards):
back: Alternativa D - Temos que cada contêiner está em um servidor diferente – portanto, cada contêiner WebJus se comunica com um daemon diferente. Para permitir comunicação entre daemons diferentes (e, consequentemente, entre servidores e nós), precisamos usar a configuração do tipo overlay.(Gabarito: Letra D)