1

Visual Studio Dockerツールを使用してプロジェクトの開発環境を設定しようとしています。Docker for windows:linuxとwindowsコンテナ間の通信

私は、RabbitMqを介して通信している.netコアベースといくつかのフルfxマイクロサービスを持っています。 RabbitMqはLinuxベースのドッカーコンテナの内部にあり、.netコアマイクロサービスも同様であり、ドッカー作成ファイルで同じネットワークに接続されています。 .Netコアのマイクロサービスは、コンテナ名をホスト名として使用してRabbitMqに接続することに問題はありません。

Windowsベースのコンテナに関しては、ウィンドウとLinuxドッカーエンジンの間でネットワークが共有されないため、コンテナ名を使用してウィンドウベースのマイクロサービスをRabbitMqサービスに接続できません開発マシンにとっては弱いです。なぜなら、これは他の開発者にとっては異なるため、設定上のオーバーヘッドをもたらすからです。

AFAIK swarmモードは、そのような通信を確実にするために使用できますが、テスト/プロダクト環境に適しています。また、Visual Studioコンテナのデバッグ機能が失われてしまいます(docker-compose )。

したがって、単一ホスト上の混在システムのインターコンテナ通信の最良の方法は何ですか?

+2

LinuxマシンとWindowsコンテナを1台のマシンで実行できるかどうかはわかりませんでした。 RabbitMQドッカーコンテナーのIPが名前に設定されている 'hosts'ファイルを作成できますか?例えば、Docker Toolboxを使うと、 'hosts'に次のように書くことができます:192.168.99.100 docker次に、各開発者がIPを設定し、ドッカーの作成がその名前を使用できるようになります。 – Boggin

+0

ホストファイル操作のトリック。それでもいくつかの事前設定が必要ですが、IPのハードコーディングよりもはるかに優れています。ネイティブが何もポップアップしないなら、私はこれと一緒に行くでしょう。ありがとう! – liri2006

+0

同じマシンにLinuxとWindows Docker Enginesを混在させることはできないと言っているSO Q&Asがあります:[同じドッカーエンジンホストでLinuxベースとWindowsベースのコンテナを混在させることはできますか?](https://stackoverflow.com/ q/41010604/444244)おそらく、それらをあなたの戦略で更新できますか? – Boggin

答えて

2

RabbitMQ DockerコンテナのIPが名前に設定されているホストファイルを作成します。たとえば、Docker Toolboxを使用すると、ホストに次のものを置くことができます。 192.168.99.100 docker 各開発者がIPを設定し、docker-composeがその名前を使用できるようになりました。

関連する問題