No Docker, devo reutilizar imagens de base, se possível?

0

Estou começando a usar o Docker para meu desktop Kubuntu. Como estou seguindo os tutoriais, tem me ajudado a entender como isso funciona, mas estou preso à seguinte situação:

Gostaria de implantar contêineres por pelo menos três:

  • servidor da Web (Apache)
  • banco de dados compatível com SQL (MariaDB / MySQL)
  • Java personalizado SDK (baseado em OpenSDK)

Pesquisando como, as pessoas recomendam strongmente o uso de imagens básicas baseadas em Alpine, pois elas usam apenas 5-6 MB de armazenamento em disco, o que é muito bom. E isso resolveria meus problemas para o servidor da Web e o banco de dados, desde que já existam imagens de base no Docker Hub.

Mas o problema é com o Java SDK, onde eu apenas construo meu próprio ambiente de desenvolvimento personalizado que precisa usar uma imagem de base do Ubuntu 16.04 . (Eu poderia portá-lo para o Alpine, mas haveria muitos problemas que eu não gostaria de resolver).

Se eu entendi como o Docker funciona, se vários dockerfiles estão usando a mesma imagem de base, não é necessário fazer o download novamente, pois ele seria usado por todos os contêineres que o exigem.

Em seguida, seria uma boa idéia usar essa imagem de base do Ubuntu 16.04 para também implantar o servidor da Web e o banco de dados (e mais contêineres, se houver)? Como o uso das versões Alpine mencionadas no Docker Hub também precisaria fazer o download de suas imagens de base da Alpine (mesmo que sejam apenas 5 MB ).

Obrigado antecipadamente.

Just to clarify: I DO NOT want to change the tools I am currently using, that is not the question, I just want to understand Docker and good practices with it.

    
por David Tabernero M. 24.05.2018 / 23:18

1 resposta

1

Sim, se você usar a mesma imagem de base para todos os três contêineres, economizará espaço em disco, já que essa camada base é comum às três imagens. Dito isto, o Alpine não é tão grande assim, se o seu DB & As imagens do Apache são baseadas no Alpine, isso não é tão ruim quanto parece. Mas se você usar um contêiner de volume (por exemplo, para fornecer conteúdo estático para o servidor Apache), poderá basear-se em qualquer uma das suas imagens existentes, e o único espaço em disco que ele usará será para o conteúdo adicionado.

    
por xenoid 25.05.2018 / 00:22