O que é Dockerfile
Alternativa mais adequada ao Docker Commit
Introdução
Um Dockerfile é um arquivo de texto que contém um conjunto de instruções para a criação de uma imagem Docker. Ele define como o contêiner deve ser configurado, quais pacotes e dependências devem ser instalados e qual aplicação deve ser executada quando o contêiner for iniciado.
Estrutura Básica do Dockerfile
Um Dockerfile é composto por uma série de instruções, cada uma especificando uma tarefa a ser realizada. As principais instruções incluem:
FROM: Define a imagem base.
RUN: Executa comandos durante a construção da imagem.
COPY ou ADD: Copia arquivos do sistema local para o contêiner.
CMD: Define o comando padrão a ser executado no contêiner.
EXPOSE: Informa as portas que o contêiner usará.
ENV: Define variáveis de ambiente.
WORKDIR: Define o diretório de trabalho.
Instruções do Dockerfile
FROM
A instrução FROM
especifica a imagem base a partir da qual a nova imagem será construída. É a primeira linha em qualquer Dockerfile. Exemplos comuns de imagens base incluem ubuntu
, alpine
, node
, etc.
RUN
A instrução RUN
é usada para executar comandos na imagem durante o processo de construção. Isso pode incluir a instalação de pacotes, configuração de software, entre outros.
COPY
A instrução COPY
copia arquivos ou diretórios do sistema de arquivos local para o sistema de arquivos do contêiner.
CMD
A instrução CMD
define o comando padrão que será executado quando um contêiner for iniciado a partir da imagem. Pode ser sobrescrito ao iniciar o contêiner.
EXPOSE
A instrução EXPOSE
documenta a porta na qual a aplicação dentro do contêiner estará escutando. Isso não publica a porta, mas é uma indicação para outros desenvolvedores.
ENV
A instrução ENV
define variáveis de ambiente que estarão disponíveis no contêiner.
WORKDIR
A instrução WORKDIR
define o diretório de trabalho para qualquer instrução subsequente.
Exemplo Completo de um Dockerfile
Melhores Práticas para Escrever Dockerfiles
Minimize o número de camadas: Combine comandos
RUN
quando possível para criar menos camadas na imagem.Utilize imagens base menores: Prefira imagens base mais enxutas como
alpine
para reduzir o tamanho da imagem final.Evite usar
ADD
quandoCOPY
for suficiente: A instruçãoADD
tem funcionalidades adicionais que podem não ser necessárias e adicionar complexidade.
Conclusão
O Dockerfile é uma ferramenta poderosa para automatizar e padronizar o processo de construção de imagens Docker. Compreender suas instruções e melhores práticas é essencial para criar contêineres eficientes e seguros.
Last updated