2017-08-07 6 views
0

私はドッカーの専門家ではなく、数時間の間この問題に苦しんでいます。複数のコンテナとのインターフェイスを設定する単一のCLIを設定しますか?

私は2つの独立したイメージを持っています.1つはPython REPL用、もう1つはScheme REPL用です。いずれかのイメージを実行している2つのコンテナに1つのCLIインターフェイスをラップしたアプリケーションを作成したいと思います。pythonと入力すると、それがPython REPLコンテナに接続され、そこに続くすべてが実行されます。 schemeはScheme REPLコンテナに接続します。

a)は、これがドッカー作曲を使用して、すべては可能です -

私は2つの質問がありますか?また、これはDocker Composeのユースケースとして実際には適していますか?

b)は、私は、次の最低限のdocker-compose.ymlで開始したと - 私のpythonを発行した場合、他の2と通信し、別の容器内

version: '3.3' 
services: 
    python: 
     image: "python:3.6.2-alpine3.6" 
    racket: 
     image: "m4burns/racket" 

ドIセットアップ共通CLI(たとえばbashシェル)またはスキームコマンド?エントリポイントを定義するにはどうすればよいですか?

もっと簡単な解決策は、Python & Schemeの設定を単一のイメージにまとめたDockerfileを作成することです。しかし、私は本当にそれらを別々にしておきたいので、この道を歩いています。

ご協力いただければ幸いです。

答えて

0

docker-composeを使用しても、単一のCLIインターフェイスは提供されません。代わりに、2つの別々のコンテナが作成されますが、異なるコンテナが指定したサービス名を使用して互いに通信できるという利点があります。あなたが与えた例から

version: '3.3' 
services: 
    python: 
     image: "python:3.6.2-alpine3.6" 
    racket: 
     image: "m4burns/racket" 

pythonhttp://racketを使用してracketにアクセスすることができます。コンテナは、サービス名を使用して相互にアクセスできます。デフォルトでは、サービス名はホスト名として扱われます。このホスト名は通信に使用されます。ほとんどの人はこのデフォルトの動作を使用しますが、hostnameを別に指定することもできます。

関連する問題