200 GB の RAM を搭載し、非常に高速なサーバーがあるとします。基本的には、Web インターフェイスを介して実行される rserver のようなアプリケーションをホストしたいと考えています。
各アプリケーションを、一定数の CPU と RAM が割り当てられたコンテナーに入れたいと思います。各コンテナーは、各生徒用になります。
各生徒にポートをハードコーディングせずに、各生徒に使用する http アドレスを割り当てるにはどうすればよいでしょうか?
答え1
docker run
CPU と RAM を割り当てるには、コンテナーを作成するときに (を参照docker help run
)--cpuset-cpus=
または のようなオプションがあります--memory=
。
学生ごとに異なる http アドレスを持つため、これは簡単なことではありません。コンテナ内で実行され、808x として公開されている 8080 ポート (コンテナ内) をリッスンする 8 つの Jenkins マスター サービスをホストする VM に対して行ったことは、443 のみをリッスンする Apache ディスパッチャ (または nginx) を構成し、8 つの DNS 名ごとに異なるコンテナにディスパッチすることです。システムについては、こちらをご覧ください。http://www.slideshare.net/cm13/scaling-your-jenkins-master-with-docker/16
このようなシステムを設定するには、各生徒に新しい名前を作成するためにDNSサーバー設定にアクセスする必要があります。また、Apache vhost設定の作成を自動化する必要があります(これはそれほど難しくありません)。次に、各生徒はhttps://彼の名前/アプリケーションが起動します。
docker-compose
または他のテクノロジーを使用して、コンテナの作成も自動化することをお勧めします。