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

Qual o padrão de uso de Volumes com o Docker?

Isso vem sendo uma dor de cabeça para mim!

Toda vez que eu quiser rodar o nodejs com o mysql, eu tenho de usar um volume? Isso vem me atormentando, porque de alguma forma eu preciso registra-lo em algum lugar. Mas em qual pasta eu coloco? Por padrão qual seria?

Já verifiquei alguns projetos de outras pessoas e elas não usam muito bem a paste de volumes. E se eu quiser somente me conectar ao banco eu ainda teria de usar um volume?

Por favor, eu quero muito entender como essa parte funciona!!

4 respostas

Bom! Vamos lá!

Para armazenamento persistente, você precisa de um volume. Porque toda vez que o container é reconstruído ele apaga a versão anterior. Então, se você só quiser um banco novo toda vez. Pode fazer sem nenhum volume.

Agora, se quiser manter os dados, sem precisar rodar um script de restauração de backup, você precisa apontar para uma pasta no sistema operacional host para manutenção desses dados.

Se você usar Windows, adicione a flag -v para apontar para qual pasta você deseja mapear. -v "C:\volume:/var/www"

Na instalação do mysql tem a pasta, normalmente onde fica o data. Você aponta para seu volume. Se ela for por exemplo: -v "C:\volume:/etc/mysql"

O outro jeito seria realizar um backup/restore do banco na hora de montar a imagem.

Então...

Se eu fizer um sistema bem básico, e eu utilizaria o docker sem precisar registrar o volume dele, e eu não teria problemas durante o uso dele no docker para ter o retorno dos dados?

Se eu quiser registra-los no meu computador eu realmente teria de salvá-los em um volume! Mais esse volume pode ser em outro computador, como, por exemplo, da empresa?

solução!

Agora entendi sua dúvida.

Tem a ver com a conexão do Servidor Web com o banco.

Você pode rodar um container e rodar o banco em outro lugar, que pode ser um container ou não, basta que ele esteja configurado pra acessar em algum lugar.

Não precisa estar num volume. Agora, se você pode ter um container do servidor, e um do banco na mesma máquina.

Vinicius, Obrigada por está me respondendo!