1
resposta

[Dúvida] Duvida sobre imagem Docker e persistência de dados

Boa tarde!

Eu estava pensando em baixar a imagem do MySQL ou qualquer outro banco de dados, e usar em minha aplicações, porem vendo o curso vi que a memoria não é persistida, então se eu baixar a imagem do MySQL e usar o banco de dados na minha API os dados dentro do banco de dados vão ser perdidos?

Se sim, existe uma forma melhor, das apresentadas no curso ou outra de persistir os dados?

1 resposta

Oi, Andrew!

Você está correto em sua observação. Quando você utiliza um container Docker para rodar um banco de dados como o MySQL, os dados armazenados dentro do container não são persistidos por padrão. Isso significa que se o container for removido ou reiniciado, todos os dados serão perdidos.

Para resolver esse problema, você pode usar volumes do Docker. Volumes permitem que você armazene dados fora do container, em um local no host, garantindo que os dados sejam persistidos mesmo que o container seja removido ou reiniciado.

Aqui está um exemplo prático de como você pode fazer isso:

  1. Criar um volume Docker:

    docker volume create meu_volume_mysql
    
  2. Rodar o container MySQL utilizando o volume:

    docker run -d \
      --name meu_mysql \
      -e MYSQL_ROOT_PASSWORD=minhasenha \
      -v meu_volume_mysql:/var/lib/mysql \
      mysql:latest
    

Neste exemplo, o volume meu_volume_mysql está sendo montado no diretório /var/lib/mysql dentro do container, que é onde o MySQL armazena seus dados. Dessa forma, mesmo que o container seja removido, os dados permanecerão no volume e poderão ser reutilizados por um novo container.

Bons estudos!