Fazendo backup e restore de databases em container docker

Por várias vezes eu precisei fazer o backup ou restaurar um banco, você também pode ter passado por isso. Em um banco que está na sua máquina é um pouco mais fácil, já quando estamos trabalhando com docker, isso pode ser um pouco mais complicado, mas nem tanto.

Fazendo backup

Para fazer o backup de um database que está em um container, você precisa de uma ferramenta chamada mysqldump se você estiver usando MySQL. Essa ferramenta geralmente vem junto da instalação do MySQL, como estamos usando um container MySQL esse ferramenta já vem prontinha pra uso. Então para fazer o backup, basta usar o seguinte comando:

docker exec <nome-do-container> mysqldump <nome-do-database > backup.sql

Exemplo: docker exec mysql-database mysqldump mylocaldatabase > backup-sexta.sql

Lembrando que o arquivo será gerado na pasta de onde você está executando o comando. Mas você pode passar um arquivo que esteja em outro diretório também.

docker exec mysql-database mysqldump mylocaldatabase > /tmp/var/backup-sexta.sql

Fazendo restore

Quando quiser fazer a restauração, você precisa criar o database antes, e depois executar o seguinte comando:

cat backup.sql | docker exec -i <nome-do-container> mysql <nome-do-database>

Não tem muito segredo aqui, estamos usando o comando cat para ler o arquivo e ‘passar os comando’ do arquivo para um terminal interativo do container, a opção -i do docker faz esse trabalho de criar um terminal interativo. Depois disso, é só esperar até que a restauração esteja completa.

É isso aí pessoal, espero que tenha ajudado, até a próxima. Abraço!

Voltar