Conteinerização
medium

Conteinerização Question #019e3a4f

Question Statement
Conteinerização
#docker
#dockerfile
#image-building
Medium

O que é um Dockerfile?

A

Um script bash usado para construir automaticamente uma imagem docker.

B

Um arquivo de configuração que define para qual registry de imagens um container deve ser enviado.

C

Um arquivo de texto que contém todos os comandos que um usuário poderia executar na linha de comando para montar uma imagem.

Correct
D

Uma camada de imagem criada por um container em execução armazenada no host.

Official Explanation / Community Explanations

Um Dockerfile é um arquivo de texto que contém todos os comandos que um usuário poderia executar na linha de comando para montar uma imagem. É a forma padrão de definir as etapas para construir uma imagem Docker automaticamente. Cada instrução em um Dockerfile cria uma camada na imagem, e o arquivo é processado pelo comando docker build para produzir uma imagem final.

Como funciona:

  • O Dockerfile usa um conjunto de instruções específicas como FROM, RUN, COPY, ADD, CMD, ENTRYPOINT, EXPOSE, ENV, WORKDIR, etc.
  • Cada instrução é executada em ordem, e o estado resultante do sistema de arquivos é registrado como uma nova camada.
  • O comando docker build lê o Dockerfile de um contexto especificado (geralmente um diretório) e executa as instruções para produzir a imagem.

Por que a resposta correta está certa:
A descrição correta afirma que um Dockerfile é um arquivo de texto contendo todos os comandos que um usuário poderia executar na linha de comando para montar uma imagem. Isso é preciso porque as instruções do Dockerfile espelham operações de linha de comando (por exemplo, RUN apt-get update é semelhante a executar esse comando em um shell). O Dockerfile automatiza o processo de criação de uma imagem especificando cada etapa.

Por que as respostas incorretas estão erradas:

  • Um script bash usado para construir automaticamente uma imagem docker: Embora um script bash possa ser usado para construir uma imagem (por exemplo, executando docker commit após cada etapa), um Dockerfile não é um script bash. É um arquivo de configuração declarativo com sua própria sintaxe e instruções, não um script de shell.
  • Um arquivo de configuração que define para qual registry de imagens um container deve ser enviado: Isso descreve uma configuração para enviar imagens (por exemplo, ~/.docker/config.json ou configurações de registry), não um Dockerfile. Um Dockerfile define como construir uma imagem, não para onde enviá-la.
  • Uma camada de imagem criada por um container em execução armazenada no host: Isso descreve uma camada de container (a camada gravável criada quando um container é executado), não um Dockerfile. Um Dockerfile é usado para construir imagens, não é uma camada em si.