4.1 Métodos principais de backup e recuperação de dados
Se você já perdeu dados importantes pelo menos uma vez na vida, não preciso nem te explicar por que backups são tão importantes. Nesta aula, vamos ver diferentes métodos e ferramentas pra criar backups e recuperar dados no Docker, incluindo volumes e diretórios montados.
Métodos principais de backup e recuperação de dados
- Backups de volumes do Docker
- Usando a ferramenta tar pra backups
- Backups de bancos de dados dentro de containers
- Recuperação de dados a partir de backups
4.2 Backups de volumes Docker
Os volumes do Docker oferecem uma forma prática de armazenar dados fora dos containers. Para criar backups de volumes, é possível usar várias abordagens.
Exemplo de uso do comando docker run para backup de um volume
Criando um backup de um volume
Crie um container que monta o volume e use a ferramenta tar para criar um arquivo de dados:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf
/backup/my_volume_backup.tar.gz -C /data .
Nesse exemplo, o conteúdo do volume my_volume
é compactado no arquivo my_volume_backup.tar.gz
, que é salvo na pasta /path/to/backup
no host.
Exemplo de restauração de um volume a partir de um backup
Restaurando dados em um volume
Crie um container que monta o volume e a pasta com o backup, e use a ferramenta tar
para extrair os dados:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
Nesse exemplo, os dados do arquivo my_volume_backup.tar.gz
são extraídos para o volume my_volume
.
4.3 Usando a ferramenta tar
para backups
A ferramenta tar
é uma ferramenta poderosa para criação de backups e recuperação de dados. Ela pode ser utilizada tanto dentro de containers quanto no sistema host.
Exemplo de criação de backup dentro de um container
Inicie o container com os dados necessários e crie um arquivo arquivado usando tar
:
docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .
Nesse exemplo, os dados do diretório /data
dentro do container my_container
são arquivados no arquivo my_container_backup.tar.gz
.
Exemplo de recuperação de dados do arquivo
Inicie o container e use o tar para extrair os dados do arquivo:
docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data
4.4 Backups de bancos de dados dentro de containers
Para bancos de dados, muitas vezes são utilizadas ferramentas especializadas para backups e restauração.
Exemplo de backup de banco de dados PostgreSQL
Use a ferramenta pg_dump
para criar um backup do banco de dados:
docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql
Neste exemplo, o banco de dados mydb
é exportado para o arquivo mydb_backup.sql
.
Exemplo de restauração de banco de dados PostgreSQL
Use a ferramenta psql
para restaurar o banco de dados a partir de um backup:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb
4.5 Recuperação de dados a partir de backups
A recuperação de dados é o processo de extração de dados a partir de backups criados anteriormente.
Exemplo de recuperação de dados de um volume
Use o comando docker run
para extrair os dados no volume:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
Exemplo de recuperação de um banco de dados MySQL
Use a ferramenta mysqldump
para criar um backup do banco de dados:
docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql
Use a ferramenta mysql para restaurar o banco de dados:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
GO TO FULL VERSION