fundo
- No artigo "Experimentando SpringBoot (2.3) Criação de aplicativos Docker Mirror (solução oficial)" , experimentamos a solução de espelhamento oficial recomendada, executamos o comando docker history para observar o interior do espelho e descobrimos que ele é composto de várias camadas, conforme mostrado na figura a seguir:
- Aí vem a pergunta: o que você faz com tantas camadas? A seguir, na forma de gráficos e texto, você entenderá a função da camada de imagem docker para desenvolvedores Java;
declaração
O objetivo deste artigo é ajudar os desenvolvedores Java a compreender a função da camada de espelhamento docker por meio de gráficos e texto. O conteúdo não é totalmente consistente com a situação real. Por exemplo, a camada do espelho básico não é mencionada, e a camada do espelho Java pode não incluir apenas espelhos de negócios, arquivos de configuração, Depende das três camadas da biblioteca;
Papéis comuns
Ao usar o docker, existem três funções comuns:
- Espelhando por: aqui está o desenvolvedor do aplicativo SpringBoot, para finalizar a aplicação do docker imagem de código feito;
- Armazém de espelho público Docker: O fabricante de espelho empurra o espelho para o armazém para que todos possam usar;
- Usuário do espelho: baixe o espelho do warehouse do espelho para uso local;
A história a seguir gira em torno dos três papéis acima;
O processo desde a produção até o uso
- Conforme mostrado na figura abaixo, um desenvolvedor de aplicativos SpringBoot, depois de escrever o código, transforma o aplicativo em uma imagem docker. O TAG da imagem é 1.0. Neste momento, quando o desenvolvedor envia a imagem para o armazém público, um total de três camadas deve ser enviado:
- Em seguida, se o usuário quiser baixar o espelho, ele baixa três camadas do repositório de espelho:
- Neste momento, o conteúdo dos três personagens é o mesmo, e eles são três camadas:
- Nesse momento, o desenvolvedor do SpringBoot modificou o código de negócios e fez um novo espelho (TAG é 2.0) e, em seguida, empurrou-o para o warehouse de espelho;
- Aí vem o ponto : como apenas o código de negócios é alterado, apenas a camada da classe de negócios é nova e apenas essa camada será enviada para o warehouse, conforme mostrado abaixo:
- Para usuários de espelho, se você baixou um espelho 1.0 antes, se deseja usar um espelho 2.0 neste momento, você só precisa baixar a camada de classe de serviço mais recente do warehouse:
- O resultado final é o seguinte: Tanto os armazéns públicos quanto os usuários de espelho obtiveram espelhos 2.0 com o menor custo:
pode ser visto que o uso de espelhos de múltiplas camadas no processo de distribuição de espelhos será mais eficiente do que o espelhamento de uma única camada, especialmente ao usar hubs. Armazéns públicos na Internet, como .docker.com, e em cenários onde novas versões são lançadas com frequência;
Bem-vindo ao meu GitHub
- Endereço: https://github.com/zq2599/blog_demos
- Conteúdo: Classificação e resumo de artigos originais, e código fonte de suporte, envolvendo Java, Docker, K8S, DevOPS, etc .;