Eu tenho uma compreensão básica do Docker e da VM - tentando entender por quê.
Suponha que eu tenha um aplicativo da web padrão. Ele consiste em NGINX, PHP-FPM e MySQL, todos executando localhost. À medida que o site começa a crescer, o DB se torna mais sobrecarregado e concorre a recursos com PHP e NGINX - juntamente com outros serviços.
Eu movo o MySQL para um host dedicado - problema resolvido - por enquanto.
Eventualmente, movo cada "serviço" para uma instância distinta do EC2 (Google compute, etc) e vinculo-os. Agora eu tenho um sistema verdadeiramente distribuído. Para abordar a escala, eu implementaria proxies na frente dos serviços apropriados e distribuiria ainda mais minha infraestrutura.
Por que eu usaria o Docker nas VMs - ou seria? Uma única VM conteria várias instâncias do NGINX? Um proxy de cache, um proxy de balanceamento de carga, instâncias NGINX de número X que se comunicam com o PHP-FPM (possivelmente em execução em instâncias distintas do EC2?).
Atenciosamente, ALex
Tags docker virtual-machine