Em ambientes corporativos, é comum operar o Docker em redes isoladas sem acesso à internet externa por motivos de segurança. Nesses cenários, para atualizar imagens ou fazer novas implantações, é necessário importar manualmente arquivos de imagem salvos externamente com docker save e carregá-los com docker load.
Mas, quando a imagem tem vários GB ou mais, mesmo uma pequena modificação gera a ineficiência de ter que transferir tudo novamente.
As imagens Docker são uma combinação de várias camadas somente leitura. Camadas idênticas podem ser compartilhadas entre várias imagens sem armazenamento duplicado. Graças a essa estrutura, basta transmitir apenas as camadas alteradas, enquanto o restante pode ser reutilizado via cache.
Como o cache automático é difícil em redes isoladas, usa-se a estratégia de empacotar e transferir separadamente apenas as camadas modificadas. Para automatizar isso, foi desenvolvida a ferramenta docker-diff, baseada em Python, que pode realizar comparação e mesclagem nos modos compare e merge, respectivamente.
Em ambientes nos quais as imagens são atualizadas com frequência, atualizações incrementais podem economizar recursos de rede e tempo, além de melhorar a confiabilidade e a velocidade da implantação.
Se possível, recomenda-se automatizar até mesmo o processo de geração, transferência e mesclagem dos pacotes incrementais para reduzir erros e aumentar a estabilidade.
3 comentários
Não dá para construir um
private docker registryem um ambiente on-premises isolado? Por que montar isso de um jeito tão complicado?> Se a infraestrutura permitir, operar um registro interno de contêineres pode ser a opção mais ideal,
Há uma frase dessas no final... parece que existe uma história triste por trás disso 🫠
Talvez existam restrições de arquitetura ou de infraestrutura. Imagino que apenas o hardware mínimo necessário para rodar a IA seja entregue ao cliente.