1
resposta

Perder dados do banco ao reiniciar pc

Ola, tenho uma duvida! fiz o curso de docker certo ok, bom como usamos o compose ao reiniciar o pc perdemos os dados do banco, no caso quando rodo o compose novamente com o docker compose up -d ele tenta criar outro container e nao inicia o antigo como posso fazer para persistir esses dados, crio volume? Ou tem outra forma de iniciar o container?

1 resposta

Oi, Guilherme! Tudo certo?

Quando você usa docker compose up -d, o Docker deve reutilizar os containers antigos se o docker-compose.yml não tiver sido alterado. Mas se ele estiver tentando criar um novo container do banco e perder os dados, é provável que a persistência não esteja configurada corretamente.

A solução ideal é usar volumes! Assim, mesmo que o container pare, os dados continuam salvos no seu sistema e não são perdidos.

Aqui vai um exemplo de como definir isso no seu docker-compose.yml:

services:
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: usuario
      POSTGRES_PASSWORD: senha
      POSTGRES_DB: meu_banco
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

O volume db_data vai garantir que os dados do banco fiquem guardados, mesmo que o container seja parado, reiniciado ou até recriado.

E para subir novamente o container sem criar outro, use sempre o mesmo docker-compose.yml e rode:

docker compose up -d

Assim ele reutiliza os containers existentes, e com o volume, os dados continuam lá.

Espero ter ajudado e bons estudos!