Для выделения процессоров и ram у вас есть опции в docker run
при создании ваших контейнеров (см. Раздел docker help run
), такие как --cpuset-cpus=
или --memory=
.
Для каждого студента, имеющего другой http-адрес, это не будет простым. То, что мы сделали для виртуальной машины, на которой размещены 8 основных служб jenkins, каждая из которых работает в контейнерах и каждое прослушивает порт 8080 (в контейнере), обозначенный как 808x, - это настройка диспетчера Apache (или nginx), который прослушивает только 443 и для каждого 8 DNS-имен, отправка в другой контейнер. Смотрите систему здесь: http://www.slideshare.net/cm13/scaling-your-jenkins-master-with-docker/16
Для настройки такой системы вам потребуется доступ к конфигурации DNS-сервера, чтобы создать новое имя для каждого учащегося. И вам также нужно автоматизировать создание конфигов Apache vhost (что не очень сложно). Затем каждый студент с помощью https://hishername/ запустит приложение.
Я бы действительно посоветовал автоматизировать создание контейнеров с помощью docker-compose
или других технологий.