Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O contêiner do MySQL Docker não está salvando dados em uma nova imagem


Como outra resposta e você declarou que os volumes não podem ser confirmados e os contêineres filho de fato herdam as definições de volume dos pais. Portanto, quaisquer alterações no volume serão descartadas. Eu gostaria de adicionar dados como arquivos de banco de dados mysql devem estar sempre em volumes por vários motivos e você não deve tentar comitá-los em sua imagem.
  1. Se você precisar migrar contêineres, não há uma maneira fácil de extrair dados de contêineres se não estiverem em um volume.
  2. Se você deseja iniciar vários contêineres que compartilham dados, é necessário ter dados em um volume.
  3. Se você deseja alterar sua definição de contêiner com novos volumes ou portas, é necessário excluí-lo e recriá-lo. Se você tiver dados no contêiner, você os perderá. (Consulte esta pergunta para um exemplo deste caso.)
  4. O sistema de arquivos union é mais lento que os sistemas de arquivos normais, o que tornará seu aplicativo ou banco de dados mais lento.

Então, o que você deve fazer em vez disso?
  1. Use um contêiner somente de dados que possa ser vinculado a qualquer instância do contêiner de serviço. Em seguida, você pode usar volumes-from para colocar seus dados no contêiner de serviço.
  2. Use um volume montado no host para poder reiniciar os contêineres e montar o mesmo local em novos contêineres.