2017-10-18 7 views
0

私はCPUコアを持っているものと同じくらい多くのDockerコンテナを実行します。だから、私はコマンドを使用:複数のDockerコンテナを実行するにはどうすればよいですか?

docker run --cpuset-cpus="0-15" --link=mongo_dev:mongodb -d -p 8001:8000 --name app myapp

をしかし、それだけで一つの容器を実行します: docker run --cpus="16" --link=mongo_dev:mongodb -d -p 8001:8000 --name app myapp

はまた、私が試してみました。または、私はこのコマンドの使用を誤解しましたか? 複数のDockerコンテナを1台のマシンで実行するのは本当ですか?私が知っているように、node.js clusterモジュールを使って1つのDockerコンテナに複数のアプリケーションインスタンスを作成することはできません。なぜなら、1つのCPUコアでしか動作しないからです。

+2

この文書を正しく理解している場合は、https://docs.docker.com/engine/admin/resource_constraints/#configure-the-default-cfs-scheduler これらのコマンドを使用して、使用するCPUコアを選択します。複数のドッカーコンテナを実行する場合は、runコマンドを複数回使用するか、ドッカーの作成を使用します。これが役に立ちますようにお願いします。 –

+0

@ H.Hakvoort私が望むように、1台のマシンにDocker Swarmを使用して、できるだけ多くのワーカーを作ることができますか? –

+0

私はあなたができると思います。 –

答えて

0

docker-composeを使用する場合は、scaleパラメータを使用して同じイメージの複数のインスタンスを実行できます。

これはすでにここdocker-compose creating multiple instances for the same image

に答えてhttps://docs.docker.com/compose/reference/scale/

+0

答えをありがとう。 werckerでマルチコンテナを実装するにはどうすればよいですか?私はドッカーを使用しないので、作成します。 –

0

はいを​​ドッキングウィンドウ-構成するための公式ドキュメントをチェックアウトしました。 1つのサーバー上で複数のコンテナを実行することができ、CPUの数に制限されません。

このコマンドは、最大16個のCPUにアクセスできるコンテナを1つ作成して開始します(2番目の例では正確にCPU 0〜15)。

あなたがしたいことは、N個のコンテナに対してコマンドをN回実行することです。 1つのCPUのみを使用するようにコンテナを制限する場合は、--cpus = 1を使用します。さらにCPUを共有しないようにコンテナを制限したい場合は、--cpuset-cpus = Iを使います。ここで、Iは各コンテナの整数です。しかし、現実には、カーネルはスケジューリングにかなり優れています。あなたが追加の調整をしていない限り、私はそれを仕事に任せます。

関連する問題