0Pricing
DevOps Bootcamp · Aula

Criação de Imagens Docker Personalizadas

Crie sua primeira imagem Docker personalizada para uma aplicação simples, identificando-a e versionando-a corretamente.

Criação de Imagens Docker Personalizadas é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 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 DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Crie sua primeira imagem do Docker

Por que criar imagens personalizadas? Elas permitem empacotar seu aplicativo específico, suas dependências e sua configuração em uma única unidade portátil. Isso é fundamental para garantir consistência e facilitar a implantação.

Você define como criar essa imagem usando um arquivo chamado Dockerfile.

Criação de Imagens Docker Personalizadas — ilustração 1

Nosso aplicativo web simples

Vamos conteinerizar um aplicativo web super simples em Python Flask. Ele apenas retorna "Olá do Docker!" quando você acessa o endereço web dele.

Imagine que tenhamos estes arquivos em um diretório:

  • app.py: o código do aplicativo Python
  • requirements.txt: lista as dependências do Python
  • Dockerfile: instruções para criar a imagem

O código da aplicação Flask

Este é o nosso aplicativo básico em Python com Flask. Ele escuta na porta 5000 e responde com "Hello from Docker!".

Você pode executá-lo localmente (depois de instalar o Flask) para vê-lo em funcionamento!

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello from Docker!'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

Especificando dependências

Nosso aplicativo precisa da biblioteca Flask. Nós a listamos em requirements.txt. Esse arquivo informa ao Docker (e ao gerenciador de pacotes do Python, pip) o que deve ser instalado.

Isso garante que nossa imagem tenha todas as bibliotecas necessárias para executar o aplicativo.

Flask==2.3.2

Anatomia do nosso arquivo Docker

Um arquivo Docker é um arquivo de texto com instruções para criar uma imagem. Cada instrução cria uma camada. Veja o que usaremos:

  • FROM: especifica a imagem base (por exemplo, Python).
  • WORKDIR: define o diretório de trabalho dentro do contêiner.
  • COPY: copia arquivos do seu computador para a imagem.
  • RUN: executa comandos (por exemplo, para instalar dependências).
  • EXPOSE: informa ao Docker sobre as portas nas quais o contêiner escuta.
  • CMD: define o comando padrão a ser executado quando o contêiner é iniciado.

Criando o arquivo Docker

Aqui está o Dockerfile completo do nosso aplicativo Flask. Coloque esse arquivo no mesmo diretório que app.py e requirements.txt.

# Use an official Python runtime as a parent image
FROM python:3.9-slim-buster

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY requirements.txt .
COPY app.py .

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 5000 available to the world outside this container
EXPOSE 5000

# Run app.py when the container launches
CMD ["python", "app.py"]

O comando `docker build`

Agora, vamos criar nossa imagem! Abra o terminal no diretório em que estão localizados o Dockerfile e os arquivos do aplicativo.

O sinalizador -t atribui à nossa imagem um nome (my-flask-app) e uma versão (1.0). O . informa ao Docker que o diretório atual deve ser usado como contexto da criação.

docker build -t my-flask-app:1.0 .

Verificando sua nova imagem

Depois que a criação for concluída, você poderá verificar se sua nova imagem existe listando todas as imagens locais do Docker.

Procure por my-flask-app com a tag 1.0 na saída.

docker images

Iniciando o contêiner do seu aplicativo

É hora de ver seu aplicativo em ação! Use docker run para criar e iniciar um contêiner a partir da sua imagem.

-p 5000:5000 mapeia a porta 5000 do seu computador host para a porta 5000 dentro do contêiner. -d o executa no modo desacoplado (em segundo plano).

docker run -d -p 5000:5000 my-flask-app:1.0

Acesse http://localhost:5000 no navegador para ver "Hello from Docker!".

Boas práticas para usar tags em imagens

As tags são fundamentais para gerenciar diferentes versões das suas imagens. Uma prática comum é usar o versionamento semântico (por exemplo, 1.0.0, 2.1.5) e também uma tag latest.

Você pode adicionar várias tags a uma imagem usando docker tag:

docker tag my-flask-app:1.0 my-flask-app:latest

Isso permite referenciar a mesma imagem por nomes diferentes, tornando-a flexível para implantações.

Verificação rápida

Considere o seguinte Dockerfile e comando de criação:

# Dockerfile content
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello"]

docker build -t my-app:v1 .

Qual das afirmações a seguir é TRUE sobre o comando docker build -t my-app:v1 .?

Recapitulação: imagens personalizadas

Excelente trabalho! Você aprendeu a:

  • Preparar um aplicativo simples para a conteinerização.
  • Escrever um Dockerfile básico usando instruções importantes (FROM, WORKDIR, COPY, RUN, EXPOSE, CMD).
  • Criar uma imagem Docker personalizada usando docker build -t.
  • Verificar sua imagem com docker images.
  • Executar um contêiner a partir da sua imagem personalizada usando docker run -p.
  • Entender a importância das tags e do versionamento de imagens.

A seguir, vamos aprofundar a estrutura das imagens Docker com camadas e técnicas para otimizar o tamanho e o tempo de criação!

Perguntas Frequentes

A aula “Criação de Imagens Docker Personalizadas” é grátis?

Sim — o texto completo de “Criação de Imagens Docker Personalizadas” é 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 DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Criação de Imagens Docker Personalizadas”?

Crie sua primeira imagem Docker personalizada para uma aplicação simples, identificando-a e versionando-a corretamente. Você pratica DevOps Bootcamp 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 DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp 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 2 de 4.

Quanto tempo leva a aula “Criação de Imagens Docker Personalizadas”?

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 DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp 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 DevOps Bootcamp