2016-05-31 12 views
0

私はNode.jsアプリケーションをDocker Container内で実行しています。Docker Composeを使用して、実行中のDockerコンテナ内から新しいDockerコンテナを起動することはできますか?

Pythonスクリプトを実行する唯一の目的で、Node.jsアプリケーション(コード:child_process.spawn()など)から新しいコンテナを起動する必要があります。また、このPythonスクリプトに1つの引数(データベースレコードID)を渡す必要があります。だから、コマンドは次のとおりです。私はこのコンテナが現在のコンテナ内で実行するのではなく、別の容器になりたくない

python main.py 56fb661b7e51f80736d48113 

注意。

SwarmやKubernatesなどのオーケストレーションフレームワークはこのタスクに適していると私は理解していますが、私の開発環境で私のマシンでDocker Composeをローカルに使用するよう要求されており、その後は生産でKubernatesを使用します。

Docker Composeを使用しているDockerコンテナ内から新しいDockerコンテナ(新しいマシン/ VM全体ではなくコンテナのみ)を起動することは可能ですか?もしそうなら、どうすればいいですか?

答えて

1

私は自分でやったことはありませんが、ドッカーがあなたの子コンテナにインストールされている場合は収集したものから、ホストのドッカーソケットを子供と利用できるようにすると、すなわち

--volume=/var/run/docker.sock:/tmp/docker.sock 

あなたはそのソケット(おそらくDOCKER_HOSTのENVVARは動作するはず?)を指すようにあなたの子供のドッカプロセスを設定へ必要がありますが、基本的な考え方のthatsます。そのソケットに対してdockerコマンドを実行すると、ホスト上で動作するはずです。

https://github.com/gliderlabs/registratorこの方法を使用すると、いくつかの参考になる場合があります。

明らかに、ドッカーを使用するこの方法はいくつかの問題を引き起こしますが、状況に応じて最適なものにすることは明らかです。

関連する問題