O contêiner mudou sozinho: o que a etiqueta "latest" realmente promete
Você não atualizou nada e mesmo assim o contêiner se comporta de outro jeito. Não é defeito: latest não é uma versão, é um ponteiro. O que importa não é ter o mais novo, é conseguir voltar atrás.
AtlasPVE ·
Este verbete responde a
- docker latest por que é ruim
- contêiner se atualizou sozinho
- docker fixar versão
- como escolher uma tag docker
- desfazer atualização de contêiner
Você não atualizou nada. Reiniciou o contêiner e agora ele se comporta de outro jeito: uma configuração sumiu, uma interface mudou, uma extensão parou. Não é defeito. latest não é uma versão, é um ponteiro, e não é você quem decide para onde ele aponta.
O que a etiqueta realmente promete
latest não significa "a última versão estável". Significa "a última coisa que quem publica subiu". Alguns colocam ali a versão estável, outros uma compilação de desenvolvimento. Pela etiqueta não dá para distinguir.
Daí saem três consequências, e você encontra as três no dia a dia.
Mesmo arquivo, resultado diferente. Duas máquinas podem ter um arquivo de configuração idêntico e rodar versões diferentes, porque baixaram em momentos diferentes. É daí que costuma vir a frase "na minha funciona".
Você não escolhe a hora da mudança. O contêiner se atualiza sempre que é recriado. Na noite em que você reiniciou porque um disco encheu, pode ter pulado uma versão sem perceber.
Quando quebra, você não consegue voltar. Essa é a mais pesada. Se você não sabe de onde veio, não consegue voltar para lá. Sobra só a frase "ontem funcionava".
O que importa não é a versão nova, é conseguir voltar
Fixar uma versão não é "ser cauteloso". Fixar cria um ponto para onde voltar. Numa instalação fixada, uma atualização é uma decisão que você tomou, e toda decisão tomada pode ser desfeita.
O preço é claro: agora a atualização é você que faz. Era exatamente essa a ideia.
Uma etiqueta pode ser movida, uma impressão digital não
Quem publica pode mover uma etiqueta para outra coisa. Então o que você baixou ontem como 1.2 pode, em tese, ser diferente do que você baixa hoje como 1.2. Se você quer mesmo dizer "exatamente isto", fixe a impressão digital da imagem e não a etiqueta. Fica longa e feia, mas é a única marca que não pode ser movida.
Para a maioria das instalações, fixar um número de versão basta. A impressão digital é para os casos em que você precisa reproduzir exatamente a mesma coisa anos depois.
A objeção honesta
"Se eu fixar, perco as correções de segurança." Verdade, se você fixar e esquecer. Fixar não é uma estratégia sozinha, é metade de um hábito; a outra metade é ler as notas de versão com regularidade. Fixar e esquecer é pior do que ficar no latest, porque você fica para trás e não sabe.
O teste é simples: pergunte a si mesmo quando atualizou este contêiner pela última vez. Se não tem resposta, o problema não é fixar, é a sua agenda.
A rede de segurança do lado do Proxmox
O contêiner está dentro de uma máquina virtual ou de um contêiner. Isso te dá algo que o mundo dos contêineres não oferece: tirar um instantâneo antes de atualizar. Se a atualização der errado, você rebobina não o contêiner, mas a máquina embaixo dele.
Isso não substitui fixar, mas também cobre o que você não fixou. A ordem que vale virar hábito é: primeiro o instantâneo, depois a atualização, depois conferir que funciona de verdade.
O que o Atlas faz
Quando você cola um arquivo de configuração no Atlas, ele lê o arquivo antes de executar. Imagens sem versão fixada, ou seja, as que dizem latest ou não trazem etiqueta nenhuma, são marcadas como aviso.
Isso é de propósito um aviso, não um bloqueio. Fixar é uma preferência e a preferência é sua; o trabalho do produto não é decidir, é tornar a decisão visível. As coisas realmente perigosas, como dar ao contêiner o acesso de comando do servidor ou montar o diretório raiz do servidor, são marcadas com outra cor e outra linguagem.
Um detalhe importa: essa leitura acontece do lado do servidor. Contornar a interface e mandar o arquivo direto não remove o aviso. Um aviso que só vive na tela não é um aviso.
Fontes
A documentação oficial do Proxmox. Em inglês, e é ela que dá a palavra final neste assunto.