A segurança dos dados em ambientes containerizados é um desafio constante para equipes de infraestrutura. A ferramenta de linha de comando docker-backup foi desenvolvida para simplificar a criação e a recuperação de backups completos de containers Docker, capturando tanto os dados quanto as configurações sem a necessidade de agentes internos.
Superando os Desafios do Backup de Containers
Abordagens tradicionais de backup frequentemente exigem a instalação de clientes dentro de cada container, falham na captura de metadados cruciais ou não garantem a consistência dos dados em nível de aplicação. O docker-backup resolve essas limitações interagindo diretamente com o daemon do Docker. Ele analisa pontos de montagem e volumes, permitindo backups no nível do host, retenção completa de metadados (como mapeamento de portas e variáveis de ambiente) e suporte a backups consistentes para bancos de dados.
Instalação e Requisitos
Para utilizar a ferramenta, é necessário ter o Docker na versão 18.02 ou superior (API 1.36+). Caso opte pela compilação a partir do código-fonte, o ambiente Go 1.11+ é requerido.
Compilando a partir do código-fonte:
git clone https://github.com/docker-backup/docker-backup.git backup-tool
cd backup-tool
go build -o dbackup main.go
Para usuários do Arch Linux, a instalação pode ser feita diretamente via AUR:
yay -S docker-backup-bin
Executando Backups
Geração de Metadados e Listas de Arquivos
O método mais básico gera um arquivo JSON com os metadados e uma lista dos caminhos a serem copiados:
dbackup backup my_web_container
Isso resultará nos arquivos my_web_container.json e my_web_container.list.
Criação de Arquivos Tar para Migração
Para consolidar tudo em um único arquivo compactado, utilize a flag --tar:
dbackup backup --tar my_web_container -o /mnt/storage/web_backup.tar
Backup em Lote
É possível capturar o estado de múltiplos containers simultaneamente:
# Apenas containers em execução
dbackup backup --all
# Incluindo containers parados
dbackup backup --all --include-stopped
Integração com Ferramentas de Backup Externas
A flag --launch permite orquestrar ferramentas como restic ou borg:
dbackup backup --all --launch "restic -r /mnt/secure-repo backup --tag container-%tag --files-from %list"
As variáveis %tag e %list são substituídas dinamicamente durante a execução.
Procedimentos de Restauração
Recuperação Básica
O processo de restauração recria as configurações originais, volumes e redes:
dbackup restore /mnt/storage/web_backup.tar
Restauração com Inicialização Automática
Para minimizar o tempo de inatividade, adicione o parâmetro --start:
dbackup restore --start /mnt/storage/web_backup.tar
Cenários de Uso Práticos
Agendamento de Recuperação de Desastres
Configure uma tarefa cron para backups noturnos de containers específicos:
# Executa diariamente às 02:00 AM
0 2 * * * dbackup backup --tar --all --filter "label=role=postgres" -o /backup/db/
Replicação de Ambientes
Transfira configurações e dados de produção para ambientes de staging:
# No servidor de produção
dbackup backup --tar prod_api > api_state.tar
# No servidor de staging
scp user@prod:/path/to/api_state.tar .
dbackup restore --start api_state.tar
Perguntas Frequentes
A ferramenta é compatível com containers Windows?
O suporte nativo é focado em containers Linux. Para ambientes Windows, recomenda-se o uso através do WSL2.
Como realizar backups incrementais?
O docker-backup não possui um motor incremental próprio, mas delega essa função a ferramentas especializadas via parâmetro --launch, como o restic.
O backup de bancos de dados causa bloqueios?
Para evitar inconsistências, combine a ferramenta com utilitários nativos de dump (como pg_dump ou mysqldump) utilizando scripts de pré e pós-backup.