Como exportar e importar volumes do Docker com facilidade

Um guia simples que mostra como exportar e importar volumes do Docker com facilidade

Se você é como eu, prefere rodar tudo em contêineres Docker. Eles são rápidos, isolados e perfeitos para rodar vários apps em uma única VPS.

Mas o que acontece quando você quer:

  • Mover um contêiner para um servidor novo?
  • Fazer backup de um volume de banco de dados (NextCloud, PhotoPrism, Vaultwarden etc.)?
  • Restaurar dados depois de uma pane?

O Docker não tem um botão de “exportar volume” — mas existe um truque superssimples e confiável usando um contêiner Ubuntu temporário.

Vamos lá!

Passo 1: Liste seus volumes

docker volume ls

Exemplo de saída:

DRIVER    VOLUME NAME
local     nextcloud_data
local     photoprism_storage
local     vaultwarden_data

Escolha o que você quer exportar (por exemplo, nextcloud_data).

Passo 2: Exporte um volume → backup.tar.gz

Rode este comando de uma linha (troque nextcloud_data pelo nome do seu volume):

docker run --rm -v nextcloud_data:/data -v "$(pwd)":/backup ubuntu \
  tar -czf /backup/nextcloud-data-backup.tar.gz -C /data ./

O que ele faz:

  • Monta o seu volume em /data dentro de um contêiner temporário
  • Monta a sua pasta atual em /backup
  • Cria um arquivo compactado com o volume inteiro

Quando terminar, você terá um arquivo como: nextcloud-data-backup.tar.gz ← pronto para baixar ou mover!

Dica de mestre: adicione a data para ficar mais claro

docker run --rm -v nextcloud_data:/data -v "$(pwd)":/backup ubuntu \
  tar -czf "/backup/nextcloud-data-$(date +%Y-%m-%d).tar.gz" -C /data ./

Passo 3: Importe no servidor novo

  1. Copie o arquivo backup.tar.gz para o servidor novo (via scp, rsync etc.)

Depois, crie o volume vazio (importante!):

docker volume create nextcloud_data

Rode o comando de importação (a partir da pasta que contém o arquivo de backup):

docker run --rm -v nextcloud_data:/data -v "$(pwd)":/backup ubuntu \
  tar -xzf /backup/nextcloud-data-2025-04-05.tar.gz -C /data

Pronto! Seu volume foi totalmente restaurado.

Nunca deixe o Docker criar o volume automaticamente durante a importação — isso pode causar problemas de permissão ou de mistura de dados.

Bônus: usando volumes externos com o Docker Compose

Se você usa docker-compose.yml, avise o Docker que o volume é externo (já existe):

services:
  nextcloud:
    image: nextcloud:latest
    volumes:
      - nextcloud_data:/var/www/html

volumes:
  nextcloud_data:
    external: true

A indentação importa — use exatamente dois espaços.

Casos de uso reais

  • Migrar o NextCloud para uma VPS nova
  • Fazer backup do Vaultwarden antes de atualizar
  • Mover a biblioteca do PhotoPrism para um servidor maior
  • Recuperação de desastres

Este método é 100% confiável, funciona com qualquer volume e não exige nenhuma ferramenta extra.

Agora você tem uma estratégia de backup de volumes Docker à prova de balas.

Boa conteinerização! 🐳

Obrigado pela leitura!

Criado com Hugo
Tema Stack desenvolvido por Jimmy