‫Tudo bem. Agora que você aprendeu tudo sobre volumes e montagens de ligação e por
‫que precisamos nos preocupar com dados persistentes, vamos fazer algo que é um cenário do mundo real, que é atualizações de banco de dados.
‫Imagine uma situação em que você esteja executando uma versão específica de um banco de dados.
‫Digamos postgres e você precisa atualizar a versão do patch porque talvez haja uma correção de segurança, ou uma
‫correção de erros, ou algo assim.
‫Normalmente, em um sistema, você apenas atualizaria o software. Você faria uma atualização ou atualização do sistema de gerenciamento
‫de pacotes, e trataria todas as atualizações para as bibliotecas e tudo por si só.
‫Mas como fazemos isso em um recipiente?
‫Porque, se estamos tentando seguir a melhor prática de não atualizar aplicativos em contêineres, mas sim substituir o
‫contêiner por uma nova versão, como fazemos isso com o banco de dados?
‫O que você vai fazer para esta tarefa é que você vai usar o Docker Hub para obter algumas informações
‫sobre a atualização da versão específica do postgres. Vamos começar com você especificamente criando
‫um recipiente usando a versão 9. 6. 1, que é uma versão mais antiga. E você precisará criar um volume nomeado.
‫Você vai ter que se apoiar na documentação do Docker Hub para isso, usando o repositório oficial do postgres.
‫Você precisará entrar no Dockerfile para essa versão específica e aprender o que
‫o caminho do volume precisa ser. Então você pode nomear seu volume o que quiser no lado esquerdo.
‫Mas lembre-se que o cólon do lado direito, esse deve ser o caminho onde os bancos de
‫dados reais estarão no recipiente.
‫Uma vez que você tenha descoberto tudo e você começou seu contêiner, você deve começar a verificar os registros para ver quando
‫terminar de criar os bancos de dados e todas as coisas de inicialização. Como a primeira vez que você inicia um
‫contêiner de banco de dados, geralmente faz um monte de coisas em segundo plano, como
‫criar o usuário de administrador e um banco de dados padrão, e assim por diante.
‫Haverá um ponto em que os logs serão interrompidos e então ele será executado.
‫um volume docker ls e ver o volume listado lá, com o nome que você deu e você deve poder parar esse recipiente.
‫Se você fez isso corretamente, você poderá fazer Então você vai criar um
‫novo recipiente com uma nova versão.
‫Vai ser um comando muito parecido com o primeiro, apenas você especifica uma versão diferente, você
‫também se certificará de que deseja especificar o volume do nome do samed porque precisa usar os dados
‫que você usou no primeiro.
‫Claro, certifique-se de ter o primeiro parado porque ambos não podem acessar os
‫mesmos dados ao mesmo tempo.
‫Depois de iniciá-lo, vá em frente e verifique os registros novamente para esse novo recipiente.
‫O que você deve ver é que ele só tem algumas linhas de logs de inicialização porque não precisa
‫fazer todo o trabalho da inicialização inicial.
‫Esse tipo de como você sabe que está usando o mesmo volume
‫nomeado é que a segunda vez que ele é iniciado, ele pode ter apenas quatro ou cinco entradas de log.
‫Então, este é um cenário do mundo real.
‫Você fará isso se você executar bancos de dados de produção ou qualquer coisa que você precise manter atualizado.
‫Observe que a maioria dos sistemas de banco de dados não faz upgrades importantes automaticamente.
‫Geralmente requer uma ferramenta. há uma ferramenta separada para cada um deles que você precisa executar.
‫Com o Postgres ou o MySQL,
‫Isso realmente é apenas sobre a atualização das versões de patch ou o último número que não
‫requer mudanças de esquema ou quaisquer atualizações importantes para o próprio código de dados.
‫Como antes, se você
‫ficar preso, não se preocupe porque isso é uma coisa nova e pode não ficar tão claro no Docker Hub.
‫Se você ficar preso em algum momento e o Docker Hub não está
‫ajudando você, basta verificar a próxima palestra, o que é que eu estou passando pelo mesmo exercício que eu faria.
‫Boa sorte.