Conceitos Fundamentais de Contêineres
Funcionamento e Benefícios
- Empacotamento de aplicações e dependências em unidades isoladas
- Multiplos contêineres compartilham o kernel do sistema operacional hospedeiro
- Operam como processos independentes com inicialização rápida e consumo mínimo de recursos
Comparação com Máquinas Virtuais
| Característica |
Docker |
VM |
| Tempo de inicialização |
Segundos |
Minutos |
| Consumo de disco |
MB |
GB |
| Desempenho |
Próximo ao nativo |
Reduzido |
| Escalabilidade |
Milhares por host |
Dezenas |
Instalação e Configuração
Procedimentos de Instalação
# Ubuntu
sudo apt update
sudo apt install docker-io
sudo systemctl enable --now docker
# Windows 10 (Requisitos: Hyper-V ativado)
# Baixar Docker Desktop: https://www.docker.com/products/docker-desktop
Otimização de Registro
# /etc/docker/daemon.json
{
"registry-mirrors": ["https://espelho.docker.com"],
"data-root": "/caminho/alternativo"
}
sudo systemctl restart docker
Gerenciamento de Imagens
Comandos Essenciais
# Busca e obtenção
docker procurar nginx
docker obter nginx:alpine
# Inspeção e remoção
docker inspecionar imagem_id
docker remover_imagem -f imagem_id
# Armazenamento persistente
docker salvar imagem_id > backup.tar
docker carregar -i backup.tar
Operações com Contêeneres
# Criação e execução
docker executar -dit --nome app -p 8080:80 nginx
# Gerenciamento
docker iniciar app
docker parar app
docker reiniciar app
# Interação e remoção
docker executar_comando app sh
docker remover app -f
Repositórios e Distribuição
# Docker Hub público
docker login -u usuario
docker marcar imagem_id usuario/app:v1
docker enviar usuario/app:v1
# Repositório privado
docker executar -d -p 5000:5000 registro
docker marcar imagem_id localhost:5000/app
docker enviar localhost:5000/app
Automatização com Dockerfile
Estrutura Básica
FROM python:3.9
COPIA requisitos.txt /app
TRABALHARDIR /app
EXECUTAR pip install -r requisitos.txt
EXPORTA 8000
CMD ["python", "app.py"]
Construção de Imagem
docker construir -t app_python:v1 .
Orquestração com Docker Compose
Arquivo de Configuração
version: "3"
serviços:
web:
construir: .
portas:
- "8000:8000"
banco:
imagem: postgres:14
ambiente:
POSTGRES_PASSWORD: senha
Comandos Principais
docker-compose subir -d
docker-compose parar
docker-compose descer
Conectividade antre Contêineres
# Criação de rede dedicada
docker rede criar rede_app
# Conexão de contêineres
docker executar --rede rede_app --nome app1 nginx
docker executar --rede rede_app --nome app2 nginx