Digamos que eu tenha um servidor com 200 GB de RAM e muito rápido. Basicamente, quero hospedar um aplicativo como o rserver, que é executado por meio de uma interface web.
Gostaria de colocar cada aplicativo em um contêiner com um número definido de CPU e RAM alocados. Cada contêiner seria para cada aluno que tenho.
Como eu daria a cada aluno um endereço http para usar sem codificar cada aluno em uma porta?
Responder1
Para alocar CPU e RAM você tem opções ao docker run
criar seus contêineres (veja docker help run
) como --cpuset-cpus=
ou --memory=
.
Para cada aluno com um endereço http diferente, isso não será simples. O que fizemos para uma VM hospedando 8 serviços mestres jenkins, cada um rodando em contêineres e cada um ouvindo a porta 8080 (no contêiner) exposta como 808x, foi configurar um despachante Apache (ou nginx) ouvindo apenas em 443 e, para cada 8 nomes DNS, despachando para um contêiner diferente. Veja o sistema aqui:http://www.slideshare.net/cm13/scaling-your-jenkins-master-with-docker/16
Para configurar tal sistema, você precisaria ter acesso a uma configuração de servidor DNS para criar um novo nome para cada aluno. E você também precisaria automatizar a criação das configurações do Apache vhost (o que não é muito difícil). Então cada aluno irá parahttps://seunome/que iniciará o aplicativo.
Eu realmente aconselharia automatizar também a criação de containers, com docker-compose
ou outra tecnologia.