假设我有一台 200 GB RAM 且运行速度非常快的服务器。我基本上想托管一个通过 Web 界面运行的应用程序,如 rserver。
我想将每个应用程序放入一个容器中,并分配一定数量的 CPU 和 RAM。每个容器将用于我的每个学生。
我怎样才能给每个学生一个 http 地址,而不用将每个学生硬编码到一个端口?
答案1
docker run
对于分配 CPU 和 RAM,您在创建容器时可以选择(参见docker help run
),例如--cpuset-cpus=
或--memory=
。
对于每个拥有不同 http 地址的学生,这不会是简单的。我们为托管 8 个 jenkins 主服务的 VM 所做的工作是,每个服务都在容器中运行,每个服务都监听暴露为 808x 的 8080 端口(在容器中),配置一个 Apache 调度程序(或 nginx),仅监听 443,并且对于每 8 个 DNS 名称,调度到不同的容器。在此处查看系统:http://www.slideshare.net/cm13/scaling-your-jenkins-master-with-docker/16
要设置这样的系统,您需要访问 DNS 服务器配置,以便为每个学生创建一个新名称。您还需要自动创建 Apache vhost 配置(这并不难)。然后每个学生都可以访问https://hishername/这将启动该应用程序。
docker-compose
我真的建议使用或其他技术来自动创建容器。