Conceitos Básicos de Imagens Docker
Compreendendo Imagens Docker
Imagens Docker são componentes fundamentais na tecnologia de contêineres, servindo como modelos de leitura-somente para a criação de contêineres. Estes pacotes leves e portáteis contêm tudo o que é necessário para executar uma aplicação, incluindo código, tempo de execução, bibliotecas e ferramentas de sistema.
Características Principais de Imagens Docker
| Característica |
Descrição |
| Imutável |
As imagens não podem ser modificadas após a criação |
| Estrutura em Camadas |
Composta por múltiplas camadas de leitura-somente |
| Portabilidade |
Podem ser compartilhadas e executadas em diferentes ambientes |
Fluxo de Criação de Imagens
graph TD
A[Dockerfile] --> B[Construir Imagem]
B --> C[Repositório de Imagens]
C --> D[Implantação de Contêiner]
Criando uma Imagem Docker: Exemplo Prático
Aqui está um exemplo completo de criação de uma imagem Docker para uma aplicação web Python no Ubuntu 22.04:
## Usar imagem de tempo de execução Python oficial como imagem base
FROM python:3.9-slim
## Definir diretório de trabalho
WORKDIR /app
## Copiar arquivos do projeto
COPY . /app
## Instalar dependências
RUN pip install --no-cache-dir -r requirements.txt
## Expor porta da aplicação
EXPOSE 5000
## Definir variável de ambiente
ENV FLASK_APP=app.py
## Executar aplicação
CMD ["flask", "run", "--host=0.0.0.0"]
Comandos de Construção e Gerenciamento de Imagens
## Construir imagem Docker
docker build -t myapp:v1 .
## Listar imagens locais
docker images
## Remover imagem específica
docker rmi myapp:v1
## Marcar uma imagem
docker tag myapp:v1 myregistry/myapp:latest
Fundamentos de Imagens
Imagens Docker utilizam a tecnologia Union File System, permitindo armazenamento eficiente e inicialização rápida de contêineres. Cada imagem consiste em múltiplas camadas de leitura-somente que são empilhadas e combinadas durante a execução do contêiner.
Tipos de Imagens
| Tipo de Imagem |
Descrição |
| Imagens Base |
Imagens de sistema operacional mínimas |
| Imagens Oficiais |
Mantidas pelo Docker Hub |
| Imagens Personalizadas |
Criadas por desenvolvedores para aplicações específicas |
Considerações de Desempenho
Imagens Docker otimizam a utilização de recursos através de:
- Tamanhos mínimos de camadas
- Mecanismos de cache eficientes
- Requisitos de tempo de execução leves