Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Imagens de Bancos de dados

Olá, fiquei em dúvida em relação ao funcionamento de imagens para bancos de dados. Se as imagens são read-only, como uma imagem do Mongo armazena as informações? Se eu der stop no container ele perde tudo?

3 respostas

Olá, Thiago. Beleza?

As imagens não são, necessariamente, read-only. O Docker utiliza uma técnica chamada copy-on-write.

Imagine que você esteja numa biblioteca e pegue um livro emprestado. Quando você tentar escrever numa página desse livro, uma cópia da página irá surgir bem na frente e você só conseguirá escrever na cópia, preservando o original.

Tem mais detalhes aqui na documentação do docker: https://docs.docker.com/storage/storagedriver/

Essa técnica é utilizada, por exemplo, quando criamos novas imagens baseadas numa existente, ou quando criamos snapshots de uma imagem específica para salvar seu estado.

No caso do banco de dados, as alterações são feitas em arquivos que, a não ser que você decida configurar para não permitir nenhuma alteração, podem ser modificados.

Espero ter ajudado. Se tiver alguma dúvida, é só dizer.

Ok, então se eu parar o container os dados ficam grados dentro da imagem? Ou tem que fazer um link com um volume...

solução!

Para ser mais preciso, a imagem é apenas o projeto do container (como uma classe em linguagens de programação). Então nela não ficam dados guardados.

Após a imagem ser construída pelo Docker, um container é gerado (como um objeto em linguagens de programação) e ele pode ter dados internos ocupando espaço na memória.

Como você indicou na pergunta, para que o dado possa persistir, ele precisa estar num volume, que é um espaço em disco que foi ligado ao container.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software