Arquitetura de Armazenamento Docker
Estrutura de Camadas de Imagem Docker
Imagens Docker são compostas por múltiplas camadas de leitura-somente, criando uma estrutura de armazenamento hierárquica. Cada camada representa um conjunto de alterações no sistema de arquivos, permitindo armazenamento eficiente e rápida implantação de contêineres.
graph TD
A[Camada de Imagem Base] --> B[Camada Intermediária 1]
B --> C[Camada Intermediária 2]
C --> D[Camada Superior/Camada de Contêiner]
Tipos de Configuração de Armazenamento
| Tipo de Armazenamento |
Descrição |
Caso de Uso |
| Volumes |
Gerenciado pelo Docker |
Armazenamento de dados persistentes |
| Montagens de Ligação |
Mapeamento do sistema de arquivos host |
Ambientes de desenvolvimento |
| Montagens Tmpfs |
Armazenamento baseado em memória |
Manipulação de dados temporários |
Exemplo de Gerenciamento de Volumes
## Criar um volume Docker
docker volume create app_data
## Inspecionar a configuração do volume
docker volume inspect app_data
## Montar o volume no contêiner
docker run -v app_data:/var/lib/app ubuntu:22.04 touch /var/lib/app/config.json
Mecanismo de Armazenamento de Contêineres
Contêineres utilizam uma estratégia de cópia-na-escrita (CoW), onde cada modificação cria uma nova camada. Essa abordagem garante mínima sobrecarga de armazenamento e gerenciamento eficiente de dados entre instâncias de contêineres.
Configuração do Driver de Armazenamento
O Docker suporta múltiplos drivers de armazenamento, como overlay2, aufs e devicemapper. O driver padrão no Ubuntu 22.04 é normalmente overlay2, proporcionando desempenho e compatibilidade ótimos.
## Verificar o driver de armazenamento atual
docker info | grep "Storage Driver"
## Configurar o driver de armazenamento em daemon.json
sudo nano /etc/docker/daemon.json
{
"storage-driver": "overlay2"
}