Comandos de Dockerfile

Compartilhado por um usuário do Flashcards.gg · gerado com IA · Denunciar este conjunto

Este conjunto de flashcards aborda os principais comandos e instruções do Dockerfile para estudantes e profissionais de tecnologia.

52 cartões Português Nível: Intermediário Outros Publicado
Toque no cartão para virar

Cartões · 52

FROM
Define a imagem base sobre a qual as camadas seguintes serão construídas; é obrigatória como primeira instrução.
FROM ... AS <nome>
Nomeia um estágio específico de build para permitir compilações em múltiplos estágios (multi-stage builds).
RUN
Executa comandos dentro do container durante o processo de build, criando uma nova camada na imagem resultante.
RUN (formato shell)
Executa o comando em um shell padrão (ex: /bin/sh -c), permitindo interpolação de variáveis de ambiente e pipes.
RUN (formato exec)
Executa diretamente o binário em formato JSON array sem invocar um shell padrão, evitando sobrecarga.
CMD
Define o comando e argumentos padrão executados ao iniciar o container, podendo ser sobrescrito pelo comando docker run.
ENTRYPOINT
Configura o executável padrão fixo do container, garantindo que ele rode sempre como uma aplicação executável.
CMD vs ENTRYPOINT
ENTRYPOINT define o executável fixo, enquanto CMD fornece os argumentos padrão que podem ser facilmente substituídos.
COPY
Copia arquivos ou diretórios locais do host diretamente para o sistema de arquivos da imagem.
COPY --chown=<user>:<group>
Altera a propriedade de usuário e grupo dos arquivos copiados diretamente durante a instrução de cópia.
COPY --from=<stage>
Copia arquivos gerados em estágios anteriores de uma compilação multi-stage para otimizar o tamanho final.
ADD
Copia arquivos locais, mas também suporta URLs remotas e descompactação automática de arquivos tar locais.
ADD vs COPY
COPY é mais previsível e transparente; ADD deve ser evitado a menos que seja necessária descompactação de tar local.
WORKDIR
Define o diretório de trabalho padrão para quaisquer instruções RUN, CMD, ENTRYPOINT, COPY e ADD subsequentes.
ENV
Define variáveis de ambiente persistentes que estarão disponíveis tanto no build quanto na execução do container.
ARG
Define variáveis transitórias passadas durante o comando docker build, que não persistem na imagem final.
ARG antes de FROM
Permite parametrizar a versão ou o nome da imagem base utilizada na instrução FROM.
EXPOSE
Documenta a porta de rede na qual o container escuta em tempo de execução, sem publicá-la automaticamente no host.
VOLUME
Cria um ponto de montagem com armazenamento externo para persistir dados além do ciclo de vida do container.
USER
Define o usuário padrão e grupo para executar instruções RUN, CMD e ENTRYPOINT subsequentes, aumentando a segurança.
LABEL
Adiciona metadados estruturados à imagem na forma de pares chave-valor, como autor, versão e descrição.
HEALTHCHECK
Informa ao Docker como testar periodicamente se o serviço rodando dentro do container ainda está saudável.
HEALTHCHECK NONE
Desativa qualquer verificação de saúde herdada da imagem base.
HEALTHCHECK --interval
Define o intervalo de tempo entre as execuções sucessivas do teste de saúde do container.
HEALTHCHECK --timeout
Especifica o tempo máximo permitido para a execução do comando de teste antes de considerá-lo com falha.
HEALTHCHECK --retries
Número de falhas consecutivas necessárias para que o container seja marcado como unhealthy.
HEALTHCHECK --start-period
Tempo de carência na inicialização para permitir que a aplicação carregue antes de contar falhas de checagem.
SHELL
Permite substituir o shell padrão usado pelas instruções RUN, CMD e ENTRYPOINT escritas em formato shell.
STOPSIGNAL
Configura o sinal de chamada do sistema enviado ao container para terminar o processo com segurança (ex: SIGTERM).
ONBUILD
Registra uma instrução de gatilho para ser executada apenas quando a imagem atual for usada como base em outro build.
.dockerignore
Arquivo que define padrões de arquivos e pastas excluídos do contexto de build, acelerando a compilação.
Build Context
Conjunto de arquivos locais enviados ao daemon do Docker a partir do diretório especificado na compilação.
Camadas (Layers)
Sistemas de arquivos intermediários imutáveis criados por instruções como RUN, COPY e ADD durante o build.
Cache de Camada
Mecanismo que reutiliza passos inalterados de builds anteriores para acelerar o processo de compilação da imagem.
Multi-stage Build
Técnica para usar múltiplos FROM em um único arquivo, separando ferramentas de compilação do artefato final leve.
RUN apt-get update && apt-get install -y
Prática recomendada para atualizar listas e instalar pacotes na mesma camada, garantindo cache limpo e consistente.
RUN rm -rf /var/lib/apt/lists/*
Comando de limpeza pós-instalação no Debian/Ubuntu para reduzir significativamente o tamanho final da camada.
ENTRYPOINT em formato Exec vs Shell
O formato exec permite receber sinais do SO (PID 1), enquanto o formato shell envolve a aplicação em um subshell.
WORKDIR com caminho relativo
Se um caminho relativo for usado, ele será relativo ao caminho da instrução WORKDIR anterior.
ENV vs ARG na segurança
Evite credenciais secretas em ARG ou ENV, pois ambos podem ser inspecionados nas camadas e metadados da imagem.
Syntax Directive (# syntax=...)
Comentário especial no topo do Dockerfile que especifica a versão do frontend BuildKit a ser usada no build.
Escape Directive (# escape=\ ou `)
Define o caractere de escape no Dockerfile, muito útil em ambientes Windows para evitar conflito de barras.
RUN --mount=type=cache
Recurso do BuildKit para manter diretórios de cache de gerenciadores de pacotes sem gravá-los na imagem final.
RUN --mount=type=secret
Permite montar arquivos com chaves e credenciais seguras durante a compilação sem deixá-los salvos nas camadas.
RUN --mount=type=bind
Monta um diretório do contexto diretamente no container de build sem precisar copiá-lo com COPY.
Dangling Image
Imagem sem nome ou tag (marcada como <none>), comum após reconstruir uma imagem que substitui a versão anterior.
Scratch Image (FROM scratch)
Imagem base completamente vazia, usada para binários estáticos mínimos (como programas compilados em Go ou Rust).
Princípio do Menor Privilégio
Recomendação de segurança para usar a instrução USER e evitar que a aplicação execute como root no container.
Agrupamento de comandos com &&
Reduz o número total de camadas na imagem e possibilita a remoção de arquivos temporários na mesma camada.
Ordem de instruções e Cache
Instruções que mudam com pouca frequência devem ficar no topo; comandos frequentes (como COPY do código) no final.
EXPOSE com protocolo (ex: 80/udp)
Permite indicar explicitamente se a porta documentada utiliza o protocolo TCP (padrão) ou UDP.
MAINTAINER (obsoleto)
Instrução descontinuada que definia o autor da imagem; foi substituída pelo uso de LABEL maintainer=...

Conjuntos relacionados

Mais em Outros →