0Pricing
Docker & DevOps Fundamentals · Aula

Entendendo os Dockerfiles

Aprenda a sintaxe e as instruções comuns usadas nos Dockerfiles para definir como uma imagem é criada.

Entendendo os Dockerfiles é uma aula grátis de Docker & DevOps Fundamentals no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Docker & DevOps Fundamentals, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Docker & DevOps Fundamentals inclui 4 aulas no total.

O que é um Dockerfile?

Imagine que você tenha uma receita para fazer um bolo. Um Dockerfile é muito parecido! É um arquivo de texto simples que contém todas as instruções de que o Docker precisa para criar automaticamente uma imagem do Docker.

Em vez de misturar ingredientes, você informa ao Docker qual sistema operacional base usar, quais softwares instalar e como configurar seu aplicativo dentro da imagem.

Entendendo os Dockerfiles — ilustração 1

Benefícios: automação da criação

Os Dockerfiles trazem muitas vantagens para seu fluxo de desenvolvimento:

  • Automação: Chega de etapas manuais! O Docker cria imagens de forma consistente todas as vezes.
  • Controle de versão: Dockerfiles são código, portanto você pode acompanhar as alterações usando o Git.
  • Reprodutibilidade: Qualquer pessoa com o Dockerfile pode criar exatamente a mesma imagem.
  • Transparência: Você pode ver exatamente o que há dentro de uma imagem.

Estrutura básica de um Dockerfile

Um Dockerfile é uma lista de instruções executadas em ordem, de cima para baixo. Cada instrução cria uma nova camada na imagem.

A sintaxe básica é simples:

INSTRUCTION arguments

Os comentários começam com #, assim como em muitas linguagens de programação. As instruções do Docker não diferenciam maiúsculas de minúsculas, mas a convenção é usar letras maiúsculas.

Escolhendo uma imagem base com FROM

Todo Dockerfile deve começar com a instrução FROM. Ela especifica a imagem base sobre a qual sua nova imagem será criada. Essa imagem base geralmente contém um sistema operacional (como o Alpine Linux) e, às vezes, softwares pré-instalados.

Pense nisso como escolher seu ponto de partida — uma tela em branco ou uma tela com algumas cores básicas já disponíveis.

FROM alpine:latest

Executando comandos com RUN

A instrução RUN é usada para executar comandos durante o processo de criação da imagem. É nesse momento que você instala pacotes, cria diretórios ou compila código.

Cada comando RUN cria uma nova camada, portanto combinar comandos com && pode ajudar a reduzir o tamanho da imagem.

RUN apk update && apk add git

Comando padrão com CMD

A instrução CMD fornece comandos ou argumentos padrão para um contêiner em execução. Diferentemente de RUN, os comandos CMD são executados quando um contêiner é iniciado, e não durante a criação da imagem.

Se você especificar um comando ao executar um contêiner (por exemplo, docker run my-image ls), esse comando substituirá a instrução CMD.

CMD ["echo", "Hello from container!"]

Adicionando arquivos com COPY

A instrução COPY copia novos arquivos ou diretórios da sua máquina hospedeira (onde você está criando a imagem) para o sistema de arquivos da imagem do Docker, em um caminho especificado.

Geralmente, ela é preferida à ADD porque é mais transparente e copia apenas arquivos locais.

COPY ./app /usr/src/app

Diretório de trabalho e variáveis de ambiente

WORKDIR define o diretório de trabalho para todas as instruções RUN, CMD, ENTRYPOINT, COPY e ADD que venham depois dela. Isso torna seu Dockerfile mais organizado.

ENV define variáveis de ambiente. Essas variáveis ficam disponíveis para as instruções seguintes do Dockerfile e também para o contêiner em execução.

WORKDIR /app
ENV PORT=8080

Informando as portas com EXPOSE

A instrução EXPOSE informa ao Docker que o contêiner escuta nas portas de rede especificadas durante a execução. Ela não publica a porta de fato.

Pense nisso como uma documentação. Para tornar a porta realmente acessível de fora do contêiner, você precisa usar a opção -p com docker run.

EXPOSE 80
EXPOSE 443

Seu primeiro Dockerfile simples

Vamos reunir tudo! Este é um Dockerfile básico que configura uma imagem do Alpine Linux, instala um pacote e define um comando padrão.

Para criá-lo, salve-o como Dockerfile em um diretório vazio e execute docker build -t my-simple-app . no seu terminal.

FROM alpine:latest

LABEL maintainer="CoddyKit"

RUN apk update && apk add --no-cache bash

WORKDIR /app

CMD ["bash", "-c", "echo 'Hello from my custom Alpine image!' && sleep 3600"]

Questionário sobre as instruções do Dockerfile

Teste seus conhecimentos! Quais destas instruções são executadas durante o processo de criação da imagem, modificando diretamente o conteúdo ou a estrutura da imagem?

Recapitulação: fundamentos do Dockerfile

Você deu um grande passo para entender as imagens do Docker! Aprendemos que Dockerfiles são arquivos de texto com instruções para criar imagens, oferecendo grandes benefícios, como automação e reprodutibilidade.

Principais instruções abordadas:

  • FROM: define a imagem base.
  • RUN: executa comandos durante a criação.
  • CMD: define o comando padrão de um contêiner em execução.
  • COPY: adiciona arquivos do sistema hospedeiro à imagem.
  • WORKDIR, ENV, EXPOSE: configuram a imagem e o ambiente do contêiner.

Perguntas Frequentes

A aula “Entendendo os Dockerfiles” é grátis?

Sim — o texto completo de “Entendendo os Dockerfiles” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Docker & DevOps Fundamentals, atualize para CoddyKit PRO. O curso de Docker & DevOps Fundamentals inclui 4 aulas no total.

O que vou aprender em “Entendendo os Dockerfiles”?

Aprenda a sintaxe e as instruções comuns usadas nos Dockerfiles para definir como uma imagem é criada. Você pratica Docker & DevOps Fundamentals com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Docker & DevOps Fundamentals?

Nenhuma experiência prévia é necessária. Docker & DevOps Fundamentals no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Entendendo os Dockerfiles”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Docker & DevOps Fundamentals?

Sim. Cada aula de Docker & DevOps Fundamentals inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Entendendo os Dockerfiles
  2. Criação de Imagens Docker Personalizadas
  3. Camadas e Otimização de Imagens
  4. Compilações em várias etapas e imagens menores
← Voltar para Docker & DevOps Fundamentals