Fundamentos de Imagens Docker
O que é uma Imagem Docker?
Uma imagem Docker é um pacote leve, autônomo e executável que inclui tudo o que é necessário para executar um software, incluindo o código, o tempo de execução, as ferramentas do sistema, as bibliotecas e as configurações. Ela serve como um modelo para criar contêineres, que são instâncias executáveis de imagens.
Componentes Principais de Imagens Docker
Camadas de Imagem
Imagens Docker são construídas usando uma abordagem em camadas, onde cada camada representa um conjunto de alterações no sistema de arquivos:
graph TD
A[Camada Base da Imagem] --> B[Camada de Aplicação]
B --> C[Camada de Configuração]
C --> D[Camada de Tempo de Execução]
Anatomia da Imagem
Uma imagem Docker típica consiste em:
- Imagem Base
- Código da Aplicação
- Dependências
- Arquivos de Configuração
- Scripts de Inicialização
Criando Imagens Docker
Fundamentos do Dockerfile
Um Dockerfile é um documento de texto que contém instruções para construir uma imagem Docker:
## Imagem base
FROM ubuntu:22.04
## Metadados
LABEL maintainer="LabEx Team"
## Atualizar pacotes do sistema
RUN apt-get update && apt-get upgrade -y
## Instalar dependências
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 da aplicação
RUN pip3 install -r requirements.txt
## Expor porta da aplicação
EXPOSE 8000
## Definir comando de inicialização
CMD ["python3", "app.py"]
Processo de Construção da Imagem
Etapas de Construção
O processo de construção da imagem envolve várias etapas-chave:
| Etapa |
Descrição |
Comando |
| Extrair Imagem Base |
Baixar imagem base |
docker pull ubuntu:22.04 |
| Executar Instruções do Dockerfile |
Construir camadas da imagem |
docker build -t myapp . |
| Criar Imagem |
Gerar imagem final |
Automático durante a construção |
Comandos de Gerenciamento de Imagem
Comandos Comuns de Imagem Docker
docker images: Listar imagens locais
docker build: Criar imagem a partir do Dockerfile
docker tag: Marcar uma imagem
docker rmi: Remover imagens
docker push: Carregar imagem para o repositório
Boas Práticas
Otimização de Imagem
- Usar imagens base mínimas
- Minimizar o número de camadas
- Remover arquivos desnecessários
- Usar builds multi-stage
- Aproveitar o cache de construção
Armazenamento e Distribuição de Imagem
Repositórios de Imagem
Imagens podem ser armazenadas e compartilhadas através de:
- Docker Hub
- Repositórios privados
- Repositórios de contêineres em nuvem
Considerações Práticas
Tamanho e Desempenho da Imagem
- Imagens menores carregam mais rápido
- Redução nos requisitos de armazenamento
- Aceleração na implantação
Recomendação LabEx
No LabEx, recomendamos a prática da criação e gerenciamento de imagens por meio de laboratórios práticos e cenários do mundo real para desenvolver habilidades práticas em Docker.