O docker é adequado para ser usado em containers de longa duração?

5

Atualmente estou migrando de um poderoso servidor raiz para um servidor menos poderoso e mais barato. No servidor raiz, eu tinha alguns serviços isolados em VMs separadas. No novo servidor isso não é possível. Mas eu gostaria de ainda ter algum isolamento para alguns serviços ... Se possível.

Atualmente, estou pensando em usar o docker para esse isolamento. Mas não tenho certeza se o docker é a ferramenta certa aqui. Eu tentei google para uma resposta, mas a maioria dos posts que encontrei sobre docker estão relacionados apenas a contêineres de curto prazo para fins de desenvolvimento, ci ou teste. No meu caso, seria mais como ter um contêiner de longo prazo que roda, por exemplo, uma pilha de serviços web com nginx, php e mysql / mariadb (enquanto o banco de dados pode até obter seu próprio contêiner) e outro contêiner que executa outros serviços. >

então minha pergunta é: O Docker é adequado para uma tarefa de executar um contêiner por mais tempo. ou em outras palavras ... é docker utilizável como um "substituto" para VMs baseadas em kvm?

    
por Dodge 15.01.2016 / 10:12

2 respostas

5

O Docker é usado em todo o lugar para aplicativos da web que são aplicativos de longa duração. Atualmente em produção, tenho o seguinte em execução no docker

  • apps do php-fpm
  • trabalhadores da fila de aipo (python)
  • aplicativos do nodejs
  • java tomcat7
  • Ir
por 15.01.2016 / 10:21
5

Como em todos os apelos do julgamento, haverá alguma opinião em qualquer resposta. No entanto, é verdade que a conteinerização não é virtualização . São tecnologias diferentes, trabalhando de maneiras diferentes, com diferentes prós e contras. Considerar a conteinerização como virtualização lite é cometer um erro fundamental, assim como em relação a um convidado virtualizado como um servidor dedicado barato é um erro. Vimos muitas perguntas sobre o SF de pessoas que venderam um contêiner como " VPS barato "; Entendendo mal o que eles têm, eles tentam tratá-lo como um convidado virtualizado e causar problemas.

A contêinerização é sem dúvida excelente para o trabalho de desenvolvimento: ela permite que um grande número de ambientes seja criado muito rapidamente e, assim, torna muito fácil o desenvolvimento em várias cópias que mudam rapidamente de um back-end de referência que muda lentamente. Observe que, nesse cenário, os contêineres são todos muito semelhantes em infraestrutura e função; eles são essencialmente cópias sutilmente diferentes de um único back-end.

Podem surgir problemas quando as pessoas tentam contêinerar várias distribuições em um único host, ou os convidados têm necessidades diferentes em termos de módulos do kernel, ou conectividade externa de hardware surge como um problema - e em muitos outros desvios comparáveis dos cenários funciona bem.

Se você decidir implantar em produção em contêineres, tenha em mente o que fez e não caia na mentalidade de pensar em sua implantação como virtualizada; esteja ciente de que economizar dinheiro tem custos de oportunidade associados a ele. Corte o seu casaco de acordo com o seu pano, e você pode muito bem ter uma boa experiência. Mas permita-se (ou, mais comumente, gerência) entender mal o que você fez, e problemas podem surgir.

    
por 16.01.2016 / 10:09