Fundamentos de Imagens Docker
O que é uma Imagem Docker?
Uma imagem Docker é um pacote leve, independente e executável que inclui tudo o necessário para executar um software, incluindo o código, o tempo de execução, as ferramentas do sistema, as bibliotecas e as definições. Serve como um modelo para criar contêineres, que são instâncias em execução dessas imagens.
Componentes Principais de Imagens Docker
Imagens Docker consistem em múltiplas camadas, cada uma representando um conjunto de alterações no sistema de arquivos. Essas camadas são de leitura somente e ajudam a otimizar o armazenamento e o desempenho.
graph LR
A[Camada de Imagem Base] --> B[Camada de Aplicação]
B --> C[Camada de Configuração]
C --> D[Camada de Tempo de Execução]
Processo de Criação de Imagens
Para criar uma imagem Docker, os desenvolvedores utilizam um Dockerfile, que contém instruções para a construção da imagem. Aqui está um exemplo prático:
## Exemplo de Dockerfile para Ubuntu 22.04
FROM ubuntu:22.04
LABEL maintainer="seu_email@exemplo.com"
## Atualizar pacotes do sistema
RUN apt-get update && apt-get upgrade -y
## Instalar ferramentas necessárias
RUN apt-get install -y python3 python3-pip
## Definir diretório de trabalho
WORKDIR /app
## Copiar arquivos da aplicação
COPY . /app
## Instalar dependências
RUN pip3 install -r requirements.txt
## Expor porta
EXPOSE 8000
## Definir ponto de entrada
CMD ["python3", "app.py"]
Repositórios de Imagens Docker
| Tipo de Repositório |
Descrição |
Exemplo |
| Repositório Local |
Imagens armazenadas no computador local |
Cache do daemon Docker |
| Repositório Público |
Armazenamento de imagens acessíveis publicamente |
Docker Hub |
| Repositório Privado |
Armazenamento de imagens com acesso restrito |
Azure Container Registry |
Comandos de Gerenciamento de Imagens
Docker fornece vários comandos para gerenciar imagens:
## Extrair uma imagem do repositório
docker pull ubuntu:22.04
## Listar imagens locais
docker images
## Remover uma imagem
docker rmi ubuntu:22.04
## Construir uma imagem a partir de um Dockerfile
docker build -t myapp:v1 .
Compreendendo as Camadas de Imagens
Cada instrução em um Dockerfile cria uma nova camada. Essas camadas são armazenadas em cache e podem ser reutilizadas em diferentes imagens, o que reduz significativamente o tempo de construção e os requisitos de armazenamento.
graph TD
A[Camada Base Ubuntu] --> B[Camada de Instalação Python]
B --> C[Camada de Código da Aplicação]
C --> D[Camada de Configuração]
Considerações de Desempenho e Tamanho
Imagens Docker eficientes devem ser:
- Mínimas em tamanho
- Rápidas para baixar e iniciar
- Contendo apenas os componentes necessários
Compreendendo os fundamentos das imagens Docker, os desenvolvedores podem criar imagens de contêiner otimizadas para vários cenários de implantação.